Generating WSDL when using PHP's native SOAP class?

前端 未结 4 1783
不知归路
不知归路 2020-12-30 03:17

I\'m using the native SOAP class in PHP 5, having changed from NuSOAP as the native class is faster (and NuSOAP development seems to have ceased). However the PHP 5 SOAP lac

相关标签:
4条回答
  • 2020-12-30 03:41

    Zend_Soap_AutoDiscover is a good alternative to NuSOAP. But, you can also create the WSDL file from scratch which can be very complicated and error prone. To ease this process, you can use an IDE to generate the WSDL file for your PHP functions and pass it as a parameter to your PHP SoapServer class. Check out the complete tutorial on How to generate wsdl for php native soap class

    0 讨论(0)
  • 2020-12-30 03:50

    Stuart,

    If you or anyone else is looking for a solution to this problem here's what I did.

    First get this script: http://www.phpclasses.org/browse/download/zip/package/3509/name/php2wsdl-2009-05-15.zip

    Then look at its example files. After that I just sliced it the way I needed because I'm using 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
     }
    

    That it, your all done. Btw, I'm using SoapServer and SoapClient in php5+

    0 讨论(0)
  • 2020-12-30 04:00

    Generating a WSDL on the fly is not something that happens very often - it would tend to raise a few questions about the stability of your service!

    Zend Studio can generate a WSDL from a PHP class, and there are a few other similar tools.

    If you do need to generate the WSDL dynamically, take a look at Zend Framework library: Zend_Soap_AutoDiscover

    0 讨论(0)
  • 2020-12-30 04:00

    You can try these options:
    - 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 like)

    The first one might be your best option if the licence fits your project.

    0 讨论(0)
提交回复
热议问题