在使用 PHP 的本机 SOAP 类时生成 WSDL?
我在PHP 5中使用了原生SOAP类,由于原生类更快(并且NuSOAP开发似乎已经停止),因此从NuSOAP发生了变化。然而,PHP 5 SOAP缺乏生成WSDL的能力。
有没有人在PHP中生成WSDL的经验?如果是这样,请推荐您的首选方法。
谢谢。
我在PHP 5中使用了原生SOAP类,由于原生类更快(并且NuSOAP开发似乎已经停止),因此从NuSOAP发生了变化。然而,PHP 5 SOAP缺乏生成WSDL的能力。
有没有人在PHP中生成WSDL的经验?如果是这样,请推荐您的首选方法。
谢谢。
斯图尔特
如果您或其他任何人正在寻找解决此问题的方法,这就是我所做的。
首先获取此脚本: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。
你可以试试这些选项:
- https://code.google.com/p/php-wsdl-creator/ (GPLv3)
- https://github.com/piotrooo/wsdl-creator/ (GPLv3)
- http://www.phpclasses.org/package/3509-PHP-Generate-WSDL-from-PHP-classes-code.html (类似 BSD)
如果许可证适合您的项目,则第一个可能是您的最佳选择。