Generazione di WSDL quando si utilizza la class SOAP nativa di PHP?

Sto usando la class SOAP nativa in PHP 5, dopo essere cambiata da NuSOAP in quanto la class nativa è più veloce (e lo sviluppo di NuSOAP sembra essere cessato). Tuttavia, il SOAP di PHP 5 non ha la capacità di generare WSDL.

Qualcuno ha esperienza nel generare WSDL in PHP? In tal caso, si prega di raccomandare il metodo preferito.

Grazie.

Stuart,

Se tu o qualcun altro state cercando una soluzione a questo problema, ecco cosa ho fatto.

Per prima cosa prendi questo script: http://www.phpclasss.org/browse/download/zip/package/3509/name/php2wsdl-2009-05-15.zip

Quindi guarda i suoi file di esempio. Dopo di che l'ho solo tagliato nel modo in cui mi serviva perché sto usando il 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(arrays("GDS"=>"GDS")); $test->ignoreMethod(arrays("GDS"=>"accessCheck")); $test->createWSDL(); $test->printWSDL(true); // print with headers } 

Che, tutto fatto. A proposito, sto usando SoapServer e SoapClient in php5 +

Generare un WSDL al volo non è qualcosa che accade molto spesso – tenderebbe a sollevare alcune domande sulla stabilità del tuo servizio!

Zend Studio può generare un WSDL da una class PHP, e ci sono alcuni altri strumenti simili.

Se hai bisogno di generare il WSDL in modo dinamico, dai un'occhiata alla libreria Zend Framework: Zend_Soap_AutoDiscover

Puoi provare queste opzioni:
https://code.google.com/p/php-wsdl-creator/ (GPLv3)
https://github.com/piotrooo/wsdl-creator/ (GPLv3)
http://www.phpclasss.org/package/3509-PHP-Generate-WSDL-from-PHP-classs-code.html (simile a BSD)

La prima potrebbe essere la tua migliore opzione se la licenza si adatta al tuo progetto.

Zend_Soap_AutoDiscover è una buona alternativa a NuSOAP. Ma è anche ansible creare da zero il file WSDL che può essere molto complicato e sobject a errori. Per semplificare questo process, è ansible utilizzare un IDE per generare il file WSDL per le funzioni PHP e passarlo come parametro alla class PHP SoapServer. Guarda il tutorial completo su Come generare wsdl per php native soap