在使用PHP的本地SOAP类时生成WSDL?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (12)

我使用PHP 5中的本地SOAP类,由于本地类更快(并且NuSOAP开发似乎已停止),因此从NuSOAP更改。但是PHP 5 SOAP缺乏生成WSDL的能力。

有没有人在PHP中生成WSDL的经验?如果是这样,请推荐你的首选方法。

提问于
用户回答回答于

动态生成WSDL不是经常发生的事情 - 它往往会提出一些关于服务稳定性的问题!

Zend Studio可以从PHP类生成一个WSDL,还有一些其他类似的工具。

如果你确实需要动态生成WSDL,请查看Zend Framework库:Zend_Soap_AutoDiscover

用户回答回答于

如果你或其他人正在寻找解决这个问题的办法,这就是我所做的。

首先得到这个脚本:http : //www.phpclasses.org/browse/download/zip/package/3509/name/php2wsdl-2009-05-15.zip

然后看看它的示例文件。之后,我按照我需要的方式切片,因为我使用的是codeigniter:

function wsdl(){
  error_reporting(0);
  require_once(APPPATH."/libraries/WSDLCreator.php"); //Path to the library
  $test = new WSDLCreator("Webservice", $this->site."/wsdl");
  //$test->includeMethodsDocumentation(false);

  $test->addFile(APPPATH."/controllers/gds.php");

  $test->addURLToClass("GDS", $this->site);

  $test->ignoreMethod(array("GDS"=>"GDS"));
  $test->ignoreMethod(array("GDS"=>"accessCheck"));

  $test->createWSDL();

  $test->printWSDL(true); // print with headers
 }

就是这样,你全部完成了。顺便说一句,我在php5 +中使用SoapServer和SoapClient

扫码关注云+社区