2009-02-20 11 views
17

Używam natywnej klasy SOAP w PHP 5, po zmianie z NuSOAP, ponieważ klasa natywna jest szybsza (i wydaje się, że rozwój NuSOAP przestał działać). Jednak w PHP 5 SOAP brakuje możliwości generowania WSDL.Generowanie WSDL podczas korzystania z natywnej klasy SOAP PHP?

Czy ktoś ma doświadczenie w generowaniu WSDL w PHP? Jeśli tak, proszę polecić preferowaną metodę.

Dzięki.

Odpowiedz

3

Generowanie WSDL w locie nie jest czymś, co zdarza się bardzo często - miałoby to tendencję do zgłaszania kilku pytań o stabilność usługi!

Zend Studio może generować WSDL z klasy PHP, a jest kilka innych podobnych narzędzi.

Jeśli trzeba zrobić, aby wygenerować WSDL dynamicznie przyjrzeć Zend Framework Biblioteka: Zend_Soap_AutoDiscover

+0

Zend Soap Autodiscover jest aktywnie utrzymywany. Używam go i jestem z niego zadowolony. –

+2

Ciaran, myślę o usługach, które wdrożyliśmy w firmie, w której pracuję. Mamy całkiem dobrą, stabilną aplikację i usługi, ale dzieje się to z nowym partnerem lub istniejący wymaga nowej funkcjonalności, która jest dobra dla nas obu, więc otwieranie i pisanie rzeczy ręcznie nie jest dobrą praktyką. Prawidłowe IHMO polega na wykorzystaniu pewnej przetestowanej i bezpiecznej metody, na której można polegać, gdy takie scenariusze się pojawią - lub jeśli zespół IT zmieni się, na przykład ... – Dave

9

Stuart,

Jeśli Ty lub ktoś szuka rozwiązania tego problemu oto co zrobiłem .

Pierwszy uzyskać ten skrypt: http://www.phpclasses.org/browse/download/zip/package/3509/name/php2wsdl-2009-05-15.zip

Następnie spojrzeć na jego przykładowych plików. Potem pokroiłam go tak, jak potrzebowałam, ponieważ korzystam z codeignitera:

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 
} 

To wszystko, wszystko gotowe. Btw, używam SoapServer i SoapClient w php5 +

0

Zend_Soap_AutoDiscover jest dobrą alternatywą dla NuSOAP. Można jednak również utworzyć plik WSDL od podstaw, który może być bardzo skomplikowany i podatny na błędy. Aby ułatwić ten proces, możesz użyć IDE do wygenerowania pliku WSDL dla swoich funkcji PHP i przekazać go jako parametr do twojej klasy PHP SoapServer. Sprawdź pełną tutorial How to generate wsdl for php native soap class

Powiązane problemy