php 的webservice类库NuSoap实现web中wsdl应用
NuSOAP 是 PHP 环境下的 WEB 服务编程工具,用于创建或调用 WEB 服务。它是一个开源软件,当前版本是 0.9.5 ,支持 SOAP1.1 、 WSDL1.1 ,可以与其他支持 SOAP1.1 和 WSDL1.1 的系统互操作。 NuSOAP 完全由PHP语言编写,由一系列 PHP 类组成,不需要扩展库的支持,这种特性使得 NuSOAP 可以用于所有的 PHP 环境,不受服务器安全设置的影响。
1. NuSOAP 的获取和安装
NuSOAP 项目建立在 SourceForge 上,网络地址是:
http://sourceforge.net/projects/nusoap/
http://sourceforge.net/projects/nusoap/files/nusoap/
或 http://dietrich.ganx4.com/nusoap,这里,
可以下载到 NuSOAP 的最新的版本。
NuSOAP 的安装比较简单,把下载的 NuSOAP 的文件拷贝到服务器上,可以放在独立的目录里,也可以与程序代码放在相同的目录里,只要你的 PHP 代码能够访问到这些文件就可以了。
本文的测试环境基于 PHP5.2.6 和 NuSOAP 0.9.5 版本, NuSOAP 安装在 WEB 目录“ /nusoap ”里,有两个子目录, lib 和 samples 。其中, lib 目录下存放 NuSOAP 的所有源代码文件, samples 目录下是NuSOAP开发小组提供一些的例子。测试文件存放在 WEB 目录“ /nusoap ”里。
2. NuSOAP 的使用
NuSOAP 由一 PHP 的类组成,其中最常用到的是类soap_server和类soalclient。类soap_server 用于创建 WEB 服务,类soapclient在访问WEB服务时会用到。
2.1 一个简单的例子: Hello World
这个例子将利用 NuSOAP 创建一个简单的 WEB 服务,并利用 NuSOAP 创建一个客户端程序,调用这个服务。这个服务唯一的功能就是向客户端返回一个字符串“ Hello World ”。首先,创建 WEB 服务程序代码文件“ /nusoap/nusoap_server1.php ”:
- //把 NuSOAP 的源文件包含到当前的代码文件里
- <?php
- require_once("lib/nusoap.php");
- //定义服务程序
- function hello() {
- return 'Hello World!';
- }
- //初始化服务对象 , 这个对象是类 soap_server 的一个实例
- $soap = new soap_server;
- //调用服务对象的 register 方法注册需要被客户端访问的程序。
- //只有注册过的程序,才能被远程客户端访问到。
- $soap->register('hello');
- //最后一步,把客户端通过 post 方式提交的数据,传递给服务对象的 service 方法。
- //service 方法处理输