我在 stackoverflow 上的某个地方读到,使用 NuSoap 不是一个好主意,而且它已经死了。如果是,那么创建 WSDL 文件的最佳解决方案是什么。我只是为了创建 wsdl 文件而使用 nusoap,而我从来没有让 web 服务工作
4 回答
NuSOAP 不再被开发并且已经有一段时间了。
我查看了大多数当前的 PHP Soap 选项,最终选择了 Zend_Soap_Server,特别是因为它的AutoDiscovery组件。
关于 AutoDiscovery 的要点是 WSDL 是从代码中的文档块生成的。因此,只要您遵循正确的约定,该组件就会为您构建一个格式良好的 WSDL。
如果您不想使用框架,您可以只包含文件 Server.php、AutoDiscover.php 和 Wsdl.php。我这样做;
require_once 'Zend/Loader.php';
require_once "Zend/Loader/Autoloader.php";
$autoloader = Zend_Loader_Autoloader::getInstance();
Zend_Loader::loadClass('Zend_Soap_Server');
Zend_Loader::loadClass('Zend_Soap_AutoDiscover');
Zend_Loader::loadClass('Zend_Soap_Wsdl');
还值得记住的是,AutoDiscovery 本身并不是一个 SOAP 服务器,它只是生成您的 WSDL。所以理论上,你可以使用它来创建一个 WSDL,但是如果你想使用一个不同的 SOAP 服务器,即原生 PHP 的服务器(它不生成 WSDL)。但是,由于您将加载 Zend Soap 服务器,因此不使用它似乎有点浪费 IMO。
如果您使用 PHP4,它可能是您唯一的选择。
使用 PHP5,您可以使用 Zend Soap。http://framework.zend.com/manual/en/
I'm using Nusoap with php 5.2.5. Working great for me. But I never tested it with higher veersion.
和 MacMan 一样,我使用的是 php 5.2.17,我猜它工作得很好,很容易原生 PHP SOAP。