首页 理论教育可视化创建WSDL-PHP MVC开发实战

可视化创建WSDL-PHP MVC开发实战

【摘要】:前面深入介绍了WSDL文件结构,相信读者已经对WSDL有了初步认识。事实上很多PHP可视化编程工具已经提供了全面的WSDL支持,例如ZendStudio、Eclipse PDT等。使用可视化工具创建WSDL不仅可以提高开发效率,还可以减少出错的几率。接下来将以ZendStudio 8.0为例,详细介绍在IDE环境中创建WSDL的全过程。图12-6 WSDL文件属性最后只需要单击“完成”按钮,即可创建一个WSDL文件。现在的WSDL文件只有骨架,并没有消息体。

前面深入介绍了WSDL文件结构,相信读者已经对WSDL有了初步认识。前面的内容主要是方便读者深入认识WSDL的组成要素,以便在出错时能够迅速排除错误。事实上很多PHP可视化编程工具已经提供了全面的WSDL支持,例如ZendStudio、Eclipse PDT等。使用可视化工具创建WSDL不仅可以提高开发效率,还可以减少出错的几率。接下来将以ZendStudio 8.0为例,详细介绍在IDE环境中创建WSDL的全过程。

首先打开ZendStudio,选中相应的PHP项目,按下键盘上的【Ctrl+N】快捷键,选择创建文件类型,这里选择“WSDL”,如图12-4所示。

单击“下一步”按钮,确认文件保存路径及文件名称(需要确保该文件能够被外部用户访问到),这里将文件命名为“User.wsdl”,如图12-5所示。

978-7-111-42852-7-Part02-704.jpg

图12-4 选择文件类型图

978-7-111-42852-7-Part02-705.jpg

图12-5 文件保存名称

继续单击“下一步”按钮,选择WSDL文档Target namespace命名空间、xmlns:tns命名空间,并勾选“Create WSDL Skeleton”选项,如图12-6所示。

978-7-111-42852-7-Part02-706.jpg

图12-6 WSDL文件属性

最后只需要单击“完成”按钮,即可创建一个WSDL文件。现在的WSDL文件只有骨架,并没有消息体。打开User.wsdl文件后,单击代码编辑区中的“设计”标签,切换到可视化设计模式,如图12-7所示。

978-7-111-42852-7-Part02-707.jpg

图12-7 可视化编辑WSDL文件

图12-7中,A区表示service服务描述列表,UserSOAP表示一个port,如果需要添加多个port,只需要选中“UserSOAP”服务列表,弹出快捷菜单,选择“Add Port”命令即可,如图12-8所示。

这里只需要将默认的port地址改为“http://c1.localhost/user.php”即可。B区表示WSDL文档操作设置区,其中User表示消息类体名(一般与后台绑定的PHP类同名即可);NewOperation表示一个操作,一个操作就是PHP类中的方法(为避免混乱最好保持与PHP类成员方法同名),其中input表示数据上传,该项对应的值即为该操作的传入参数。output表示该操作返回的数据类型,有效值为schema支持的标准数据类型。(www.chuimin.cn)

为了方便演示,这里将在User类中创建一个getUser方法,该方法支持两个参数,后台将根据传入的参数返回该用户的数据,user.php文件代码如下所示。

978-7-111-42852-7-Part02-708.jpg

接下来只需要绑定到user.wsdl文件即可。首先将默认的“NewOperation”操作改为“getUser”操作,然后增加两个input Part(即传入参数),如图12-9所示。

978-7-111-42852-7-Part02-709.jpg

图12-8 添加服务port

978-7-111-42852-7-Part02-710.jpg

图12-9 可视化添加操作参数

添加的part默认数据类型为string。如果需要修改现有的part,只需要选中相应的part,在代码编辑器下方将出现属性编辑窗口,如图12-10所示。

978-7-111-42852-7-Part02-711.jpg

图12-10 元素属性编辑对话框

在类型一栏中,可以选择type(元素)定义,或者使用xsd:schema标准数据类型。一般选择“类型”即可。按照相同的方法,为getUser操作再添加一个part并命名为password。

完成后,将user.wsdl与user.php保存到http://c1.localhost网站根目录中。通过前面的步骤,一个SOAP服务文件就创建完成了,读者可以在客户端中使用SoapClient进行测试,如以下代码所示。

978-7-111-42852-7-Part02-712.jpg

当然也可以使用第三方SOAP测试工具进行测试,例如Microsoft Visual Studio、soapUI、Eclipse等,上述代码运行结果为“密码正确”。ZendStudio对WSDL的支持还有很多功能,由于篇幅所限在此不再细述,读者可以一一动手实验,增加对WSDL的认识。