Flex和PHP之间进行通信的最佳方法是什么?
过去,我们将AMFPHP与AS2一起使用,并且它在大多数情况下都很有用(AMFPHP的优势在于它还具有JSON模式,可以让您使用Javascript或Actionscript前端无缝地使用相同的远程PHP)
然而,似乎AMFPHP似乎不再被重新维护。那么人们建议更换它呢?到目前为止,我发现的是:
答案 0 :(得分:8)
如果您想进行快速有效的沟通,我强烈建议坚持使用AMF protocol而不是REST或JSON自定义格式。
ZendAMF实际上并不是很混乱。观看GotoAndLearn上的介绍教程,这很简单。
你知道,AMFPHP的some of the developers开始研究ZendAMF。所以从某种意义上说,ZendAMF是AMFPHP的延续。
答案 1 :(得分:2)
ZendAMF 好短读 - http://theflashblog.com/?p=441
对我而言,这不是一件容易的事。 Zend框架是最好的php框架之一,现在你可以和Flash客户端交谈了。最好用Adobe支持,这在我的书中完成了。
替代方案:
WebORB for php http://www.themidnightcoders.com/products/weborb-for-php
AMFPHP http://www.amfphp.com 如果您阅读上面的网址,您可能会知道为什么这不再是我的关注。
答案 2 :(得分:1)
我不能告诉你什么是最好的(因为这可能有点主观),但我能做的就是告诉你我最近的一个项目。
由于这是一个非常丰富的Web应用程序,并且对服务器的数据请求频繁,我想确保请求的大小尽可能小。这意味着选择JSON作为格式。
接下来,由于应用程序的性质以及我的flash / flex开发人员距离1000英里的事实,我需要一个简单且无状态的API。这最终导致我们进入HTTP + REST。
因此,我的应用程序的通信层是一个简单的Zend Framework驱动的REST资源集,其中包含URI,如
user/10
review/15
location/8/reviews
他们都返回JSON。所有错误都有一个通用的JSON格式(异常被捕获并转换为JSON对象),以便flash客户端可以轻松处理故障。
答案 3 :(得分:1)
如果你没有使用像Zend这样的框架,那么常规的AMFPHP仍然很棒,如果没有其他原因那么简单。我想如果你对它感到满意,为什么不去寻找呢?关于这些AMF接口的作用是它们真的不需要做太多,AMFPHP在类映射,记录集解析到ArrayCollection中具有什么,性能很好......它甚至可以很好地处理XML,因为它被压缩了。与Charles结合的服务浏览器也覆盖了我。
我无法理解ZendAMF的努力与原始AMFPHP的关系。虽然我可以挖掘,但我只是在跟随Nabble的AMFPHP邮件列表,阅读Wade Arnold的博客......这还不完全清楚。
答案 4 :(得分:1)
您应该考虑使用Zend AMF。 Zend框架旨在成为一个挑选框架,因此为您的应用程序选择单个组件(在本例中为Zend AMF)是完全可以的。
Zend AMF非常易于使用。您所要做的就是指定要公开的函数/类,并指定到操作脚本类的类映射。其他一切都非常透明。
答案 5 :(得分:1)
此链接是一个截屏视频,展示了如何将WebORB用于PHP WDMF(FlexOR的WebORB数据管理)。
答案 6 :(得分:0)
在涉及Flash和PHP后端的所有项目中,我使用过AMFPHP或XML请求。
AMFPHP确实简化了了解应用程序的未来维护,尽管它将整个事情与特定技术联系起来,并在服务器端增加了一些额外开销 - 创建所有需要的类。
根据XML,你在这里获得的是标准的REST Web服务,它不依赖于Flash(例如,你也可以从桌面应用程序中提取数据,而使用JSON或依赖于浏览器的任何其他技术)不允许这样做。)
如果你想要100%的未来“支持”,那么我建议根本不需要任何支持:XML。
答案 7 :(得分:0)
我只是使用JSON作为针对PHP api的简单调用的返回。
答案 8 :(得分:0)
我肯定会去WebORB。我在以前的工作中使用过.NET,并且编写代码很开心。它的易用性和精心设计的管理控制台使其学习起来非常快,而且其文档非常完整;我知道继续使用AMF是很诱人的,因为这是你已经知道的,但我相信值得尝试一下WebORB。
使用PHP查看这个用screencast生成的Actionscript,这非常有趣。
干杯。
答案 9 :(得分:0)
PHP有一个非常好的serialize()
函数,所以对于我最近的一个项目(游戏的高分),我使用了Sephiroth的Serializer。它使Flash端的序列化几乎和PHP一样简单。 Serializer还处理数据类型(与json / xml不同),如AMF。
下行 - 它不像AMF那么紧凑,但这并不是gzip压缩无法处理的。
答案 10 :(得分:0)
AMF具有非常优势。如果您想要传输大型复杂的Object,请务必使用AMF。但是,当你转移小物体时,人们很少知道AMF带来的开销。如果您只传输具有3个属性的对象,则使用AMF可以使有效负载大小增加三倍。
另一方面,我是RESTful架构的大力倡导者。由于JSON和AMF都只是表示,因此您可以构建一个接受这两者的REST服务,并在运行时与客户端协商实际表示。
答案 11 :(得分:-2)
“如果您想进行快速有效的沟通,我强烈建议您坚持使用AMF协议”
如果你想要一个快速,高效,通用的沟通,请选择json。然后,您的Web服务将可用于flash,ajax或常规http请求。