庆祝我从此又可以使用php5玩了 玩过了 zend xmlrpc,再玩php5的soap基本上没有太多的问题,一下的示例基本上是一次成功的! 玩soap,最麻烦的莫过于wsdl的编写(这才是我一向偏向于使用xmlrpc的原因),我一直认为那玩意儿不是人写的,昨天我才发现,的确那
庆祝我从此又可以使用php5玩了
玩过了zend xmlrpc,再玩php5的soap基本上没有太多的问题,一下的示例基本上是一次成功的!
玩soap,最麻烦的莫过于wsdl的编写(这才是我一向偏向于使用xmlrpc的原因),我一直认为那玩意儿不是人写的,昨天我才发现,的确那玩意儿是不需要人写的,除去了wsdl,说实话soap和xmlrpc几乎一样简单,甚至说更简单些(他的异常处理更完善,出错信息对调试更方便,友好)
我们先定义一个类(文件 culculator.php):
class culculator
{
/**
* 求和
*
* @param float $x
* @param float $y
* @return float
*/
public function add($x, $y)
{
return $x + $y;
}
}
创建wsdl:这项是最麻烦的过程,但是,利用zend studio,一行xml也不用写,就能轻松搞定
流程:
tools ==> wsdl generator ==> configration name : wps2000; wsdl file name: wps ==>next ==> 点击 + ==> 选择上面的创建的culculator.php ==> 这时候会看到一个 classes : url location的映射,保留 culculator 类前面的勾,并将其url 设置为 soap server的url:http://localhost/server.php ==>点击finish,zde就会创建一个非常漂亮的wsdl了 工作基本上完成了,庆祝下
拷贝那个wps.wsdl文件(默认在我的文档中)到document root文件夹下,创建 soap server: server.php
setclass('culculator');
$server->handle();
?>
创建soap客户端(client.php)
add(1.2, 2.4);
运行输出 3.6,一切正常!
soap比xmlrpc好的就是,在使用zde编写的时候,居然可以出现代码补全(显示soapserver上的方法),看来那个麻烦的wsdl也不是一无是处哦