Подтвердить что ты не робот

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

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

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

Спасибо.

4b9b3361

Ответ 1

Стюарт,

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

Сначала получите это script: 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 +

Ответ 2

Создание WSDL "на лету" - это не то, что происходит очень часто - это может привести к возникновению нескольких вопросов об устойчивости вашего сервиса!

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

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

Ответ 4

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