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

18 php soap wsdl

我正在使用PHP 5中的本机SOAP类,从NuSOAP更改为本机类更快(并且NuSOAP开发似乎已经停止).但是,PHP 5 SOAP缺乏生成WSDL的能力.

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

谢谢.

小智 9

斯图尔特,

如果你或其他任何人正在寻找这个问题的解决方案,这就是我所做的.

首先得到这个脚本: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
 }
Run Code Online (Sandbox Code Playgroud)

它,你的一切都完成了.顺便说一句,我在php5 +中使用SoapServer和SoapClient


Cia*_*lty 3

动态生成 W​​SDL 并不是经常发生的事情 - 它往往会引发一些有关服务稳定性的问题!

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

如果您确实需要动态生成 W​​SDL,请查看 Zend Framework 库:Zend_Soap_AutoDiscover

  • Ciaran,我想到了我们在我工作的公司中实施的服务。我们有一个非常好的稳定的应用程序和服务,但碰巧新的合作伙伴或现有的合作伙伴需要一种对我们双方都有好处的新功能,因此手动打开和编写东西并不是一个很好的做法。正确的 IHMO 是在这些情况发生时,或者 IT 团队发生变化时,利用一些经过测试的安全方法来依赖,例如...... (2认同)