http://www.riafan.com/article.asp?id=49
Amfphp 是PHP的RPC工具,它可以使PHP与下述技术无缝通信:
- Flash 和 flex Remoting
- JavaScript JSON 和 Ajax JSON
- XML 和XML-RPC
一、什么是RPC?
远端程序调用(RPC, Remote Procedure Call) 是一种客户端与服务器端交换数据方式。我们可以调用本地对象的带有不同参数的方法,设置回调并接受调用结果。我们不用关心发送和接收数据的实现细节。实现细节通常是抽象的, 就像我们在调用本地方法一样.
二、工作原理
客户端(Flash)与服务器端(php), 使用相同的方式描述方法调用和复杂数据。客户端序列化请求并将它发送到网关Amfphp。Amfphp再执行:
- 反序列化请求
- 找到相应的远程服务类
- 实例化类
- 执行安全检查
- (使用指定参数)调用服务器端方法
- 序列化返回的数据
Amfphp 可以正确地序列化、反序列化复杂类型数据。除了对象和数组,它还支持数据连接资源,这就意味着我们可以通过调用远程方法简单返回 mysql_query,amfphp 会处理这一切。 如果平台支持 (目前来说,Flash Remoting 和flex Remoting), phpamf还可以处理循环引用和自定义数据。 它也支持简单的远程调试。还有amfphp 附带一个服务浏览器,它可以在创建客户端代码前测试远程服务。amfphp 1.0.1还添加了模板,可以自动生成客户端代码。Amfphp 1.9 beta更是新增了对AMF3的支持。
Amfphp 1.9 beta 新鲜出炉
- 支持AMF3 包括RemoteObject,可以直接在Flex 2使用 ;
- 支持JSON和XML-RPC;
- 新款的服务浏览器(Service Browser)是用Flex开发的。可到此处试用:http://5etdemi.com/amfphp2/browser/;
- 默认下去掉了methodTable,可用CakePHP或PHP5 的语法编写远程服务方法 ;
- 可以用其它数据库输出数据集(recordsets)。详见:http://www.5etdemi.com/blog/archives/2006/12/amfphp-19-beta-get-it-now/
三、教学资源
1. 英文
- flash-db.com tutorials and forum on AMFPHP
- sephiroth.it tutorials and blog on AMFPHP
- Macromedia Remoting Developer Center
- flashcoders mailing list
- amfphp mailing list
- AMFPHP development blog
- Flash Remoting book companion site
- Setting up PHP on your webserver
- Sönke Rohde – tutorial
- Jesse Warden – Flash, Flex and AMFPHP
- SwapDepths tutorials
2. 中文
- AMFPHP v1.0 MS2 tutorials
- download, install, hello world
- pageable recordset working examples
- using web service with amfphp
- authenticate with setCredential()
- Another hello world tutorial
- luar的教学:http://www.luar.com.hk/flashbook/archives/000168.php
- 淡湮mmug网聚教学:http://breezecentral.zerone.com.tw/p66309923/