Создание WSDL при использовании собственного класса SOAP PHP?

Я использую собственный класс SOAP в PHP 5, изменившись с NuSOAP, поскольку родной класс работает быстрее (и, по-видимому, развитие NuSOAP прекратилось). Однако PHP SOAP не обладает способностью генерировать WSDL.

Есть ли опыт генерации WSDL в PHP? Если да, пожалуйста, рекомендуйте свой предпочтительный метод.

Благодарю.

Стюарт,

Если вы или кто-либо еще ищете решение этой проблемы, вот что я сделал.

Сначала получите этот скрипт: 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 } 

Что это, все твоя. Кстати, я использую SoapServer и SoapClient в php5 +

Создание WSDL «на лету» – это не то, что происходит очень часто – это, как правило, вызывает несколько вопросов об устойчивости вашего сервиса!

Zend Studio может генерировать WSDL из класса PHP, и есть несколько других подобных инструментов.

Если вам нужно генерировать WSDL динамически, взгляните на библиотеку Zend Framework: Zend_Soap_AutoDiscover

Вы можете попробовать следующие варианты:
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 как)

Первый вариант может быть вашим лучшим вариантом, если лицензия соответствует вашему проекту.

Zend_Soap_AutoDiscover – хорошая альтернатива NuSOAP. Но вы также можете создать WSDL-файл с нуля, что может быть очень сложным и подверженным ошибкам. Чтобы облегчить этот процесс, вы можете использовать IDE для генерации WSDL-файла для ваших функций PHP и передать его в качестве параметра для вашего класса PHP SoapServer. Ознакомьтесь с полным руководством по созданию wsdl для родного класса мыла php