给ThinkPHP应用程序添加web services,首先需要启动soap模块,这里仅需要修改php.int文件即可,extension=php_soap.dll
接着编写服务类。这里单独建立一个Webserver文件夹,把所有的web服务类都放置在里面。这样做的好处不言而喻,一方面为了组织的方便,另一方面可以实现团队协作开发,相互之间不会有过多影响。如下图所示:

在Webserver文件夹下面,我们可以编写各种业务逻辑代码,这里仅是演示之用,所以非常简单。当然了,你还可以在里面实现更为复杂的逻辑。
class Printers extends Base {
public function printme() {
return 'Hello';
}
}
现在,我们就可以实现web服务端了。在IndexAction.class.php文件里面编写一段web服务端代码,启动web服务。
class IndexAction extends Action{
public function index(){
import('@.Webserver.*');
$arrOption=array('uri'=>'http://localhost/mysoap/');
$objServer=new SoapServer(null,$arrOption);
$objServer->setClass('Printers');
$objServer->handle();
}
}
接着,我们在web客户端编写一小段代码,就可以获取提供的web服务了。
public function PrintHello()
{
$arrOption=array(
'uri'=>'http://localhost/mysoap/',
'location'=>'http://localhost/mysoap/index.php/Index/index',
'trace'=>true
);
$objClient=new SoapClient(null,$arrOption);
try{
$ret=$objClient->printme();
}
catch(Exception $e)
{
}
echo $ret;
}
现在你在浏览器上就可以查看到 PrintHello 输出的内容了。
