为ThinkPHP添加web services

给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 输出的内容了。

affiliate_link
Share this Post:
Digg Google Bookmarks reddit Mixx StumbleUpon Technorati Yahoo! Buzz DesignFloat Delicious BlinkList Furl

Comments are closed.