首页 理论教育使用nusoap创建WSDL,快速实战-MVC开发!

使用nusoap创建WSDL,快速实战-MVC开发!

【摘要】:nusoap是一套第三方开源类库,用于创建及调用SOAP服务。nusoap非常灵活及强大,不仅支持常用的SOAP服务调用,而且还支持动态生成WSDL,支持使用数组作为消息参数类型。此外nusoap套件还支持多种客户端与服务端连接方式,例如代理连接,SSL安全连接等。使用nusoap开发SOAP服务,不仅可以有效提高开发效率,而且由于代码全部基于PHP,开发员不需要面对复杂难记的WSDL标记,只需要掌握PHP面向对象开发即可。接下来将结合示例代码,详细介绍nusoap的使用。

nusoap是一套第三方开源类库,用于创建及调用SOAP服务。nusoap不依赖于PHP扩展模块,在早期的PHP 4.x时就已经存在,所以就算PHP没有开启SOAP模块,也不会影响nusoap的运行。nusoap非常灵活及强大,不仅支持常用的SOAP服务调用,而且还支持动态生成WSDL,支持使用数组作为消息参数类型。

此外nusoap套件还支持多种客户端与服务端连接方式,例如代理连接,SSL安全连接等。使用nusoap开发SOAP服务,不仅可以有效提高开发效率,而且由于代码全部基于PHP,开发员不需要面对复杂难记的WSDL标记,只需要掌握PHP面向对象开发即可。接下来将结合示例代码,详细介绍nusoap的使用。

1.nusoap入门

首先下载nusoap,下载地址为http://beauty-soft.net/book/php_mvc/vendor/nusoap.html。解压后得到lib文件夹及samples文件夹,其中lib文件夹为nusoap核心文件类库;samples文件夹存放了一些演示示例,这里只需要将lib文件夹复制到网站nusoap目录下即可。接下来分别介绍。

首先在nusoap目录中创建一个服务端文件并命名为api.php,代码如下所示。

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

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

上述代码共定义了一个函数,并命名为test。这里为了便于测试,并没有实现具体功能。完成后,使用register方法将该函数注册为WSDL操作(operation)。register第2个参数表示message消息体(即operation的传参),第3个参数表示操作返回的数据类型。

将文件保存,一个SOAP服务端就创建完成了。nusoap强大之处还在于其调试功能,nusoap内置了一个简单的调试器,可直接访问api.php文件,如图12-11所示。

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

图12-11 WSDL生成效果(www.chuimin.cn)

单击页面中的“test”操作,将显示该操作的调用方式及数据类型,如图12-12所示。

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

图12-12 test操作的调用说明

图12-12中,详细地列出了test操作的传递参数,返回类型以及调用URL。如果需要查看生成后的WSDL文件源代码,可以单击页面上的“WSDL”连接,效果如图12-13所示。

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

图12-13 WSDL源代码

2.调用SOAP服务

nusoap本身提供了用于调用SOAP服务的类,但是由于使用SoapClient作为类名,与PHP内置的SoapClient同名,由于PHP对类名、函数名大小写不敏感,所以如果启用了内置的SOAP扩展模块,就不要使用nusoap的SoapClient类库。只需要使用内置的SoapClient类即可,如以下代码所示。

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