Amfphp简单使用整理
原创
©著作权归作者所有:来自51CTO博客作者架构精进之路的原创作品,请联系作者获取转载授权,否则将追究法律责任
AMFPHP是PHP的远程调用(RPC, Remote Procedure Call)工具。由于近期提供接口给Flash,考虑使用AMFPHP开发,简单整理一下。
1. 下载 http://www.silexlabs.org/amfphp/
2. 目录结构
amfphp-2.2.1/Amfphp -- 核心程序库
amfphp-2.2.1/BackOffice -- 测试控制面板
amfphp-2.2.1/Examples -- 客户端(Flash、Flex、Javascript)请求示例及服务端(Php)程序示例
amfphp-2.2.1/goodies -- 图片文件夹
3. 编写测试服务
新建HelloworldService.php 文件,内容如下:
<?php
/**
* Created by PhpStorm.
* User: flyer0126
* Date: 15-3-4
* Time: 下午6:20
*/
class HelloworldService{
public function sayHelloWorld($value){
return "hello world ".$value;
}
}
4. 测试服务
利用BackOffice中ServiceBrowser,设置BackOffice登陆用户名/密码(Config.php文件):
//example code for username + password:
$this->backOfficeCredentials['admin'] = '123456';
也可设置$requireSignIn为false,取消用户验证。
登陆成功后,ServiceBrowser内容可见。
5. 客户端调用
参考Examples/Javascript/下示例,请求服务端服务。
function call()
{
/**
* notes:
* - parameters here could be left empty, they are just here to make the code easier to adapt
* - $.post method here is used because amfPHP JSON plugin expects data as POST. So can't use more obvious getJSON
* - if you always use the same parameters, you can do without json2.js, by setting for example
* callData = '{"serviceName":"PizzaService", "methodName":"getPizza","parameters":[]}'
*/
var callData = JSON.stringify({"serviceName":"HelloWorld", "methodName":"sayHelloWorld","parameters":['11']});
$.post("http://localhost/amfphp/Amfphp/index.php?contentType=application/json", callData, onSuccess);
}
function onSuccess(data)
{
alert("result : " + data);
}
触发执行函数call(),请求amfphp测试服务,alert测试信息“result:11”即算成功。