通过PHP环境ZendStudio轻松实现webservice接口实例讲解
一,创建一个Server.php主要用于处理业务逻辑,包含一个SimpleClass类。
该类包含三个方法
(1)
方法:getName()
返回姓名
(2)
方法:setID($id)
设置ID
(3)
方法:theSun($a,$b)
求合函数
代码如下:
class SimpleClass
{
function getName()
{
return "My name is HuGe";
}
function setID($id)
{
return "The ID IS:".$id;
}
function theSun($ia,$ib)
{
return $
ia+$ib;
}
}
?>
二、为创建的类添加描述,因为ZendStudio生成wsdl文件的参数是根据描述来确定的,而ZendStudio可以自动帮我们生成一定格式的描述。
操作:单击文件列表视图里面的SimpleClass,右键,选择Add description,便为当前的类添加了描述了。
下面执行同样的方法依次为每个函数添加描述如下:
现在添加好描述的代码如下:
class SimpleClass
{
function getName()
{
return "My name is HuGe";
}
function setID($id)
{
return "The ID IS:".$id;
}
function theSun($ia,$ib)
{
return $ia+$ib;
}
}
?>
三、修改添加的描述符,指定我们想要的类型
其中只需要修改两个部分
1,@param unknown_type $id
表示变量$id是未知类型的,如果想返回字符串可以修改为:@param string $id
2,
@return unknown
表示函数返回的是未知类型的,如果想返回整形,修改为@return integer
我们修改后的代码如下:
class SimpleClass
{
function getName()
{
return "My name is HuGe";
}
function setID($id)
{
return "The ID IS:".$id;
}
function theSun($ia,$ib)
{
return $ia+$ib;
}
}
?>
三、创建SoapServer
需要为每个个类创建一个SoapServer
放到另一个php文件中来创建,也可以放在当前php中
我们以当前php为例
需要在类结束后,添加如下代码:
$server
=
new
SoapServer( 'Server.wsdl');
$server->
setClass( 'SimpleClass');
$server->
handle();
最后一个语句调用$server-> handle(); 是必要的,作用是通知 SoapServer 开始处理 Web
服务的请求,如果缺少了这一语句,Web 服务就不会被启动。至此,我们就完成了对 Web 服务端的开发。
现在Server.php的代码完全编写完成了,全代码如下:
class SimpleClass
{
function getName()
{
return "My name is HuGe";
}
function setID($id)
{
return "The ID IS:".$id;
}
function theSun($ia,$ib)
{
return $ia+$ib;
}
}
$server
=
new
SoapServer( 'Server.wsdl');
$server->
setClass( 'SimpleClass');
$server->
handle();
?>
四、创建WSDL文档
我们通过ZendStudio自动来生成
选择Tool->WSDL Generator 打开WSDL
生成向导
如图:
单击NEXT,单击+添加Server.php文件
如图:
URL Location
为当前Server.php的路径,也就是SoapServer文件的路径
选择Finish创建完成
便自动生成的Server.wsdl代码
五、测试页面 ServerTest.php
代码如下:
$soap
=
new
SoapClient('http://localhost/ws/Server.wsdl');
echo
$soap->getName(); //输入姓名
echo
"
";
echo
$soap->setID(1001);
echo
"
";
echo
$soap->theSun(15,20);
?>
网页显示结果:
My name is
HuGe
The ID IS:1001
35
通过VS
2005测试
先添加一个web引用地址为你的wsdl文件地址,使用代码
WebReference5.ServerService ws = new
WindowsApplication1.WebReference5.ServerService();
MessageBox.Show(ws.theSun("15", "20"));
测试成功
写了这么多,看了的兄弟要顶一下啊!