簡體   English   中英

使用PHP的本機SOAP類時生成WSDL?

[英]Generating WSDL when using PHP's native SOAP class?

我正在使用PHP 5中的本機SOAP類,從NuSOAP更改為本機類更快(並且NuSOAP開發似乎已經停止)。 但是,PHP 5 SOAP缺乏生成WSDL的能力。

有沒有經驗在PHP中生成WSDL? 如果是這樣,請推薦您的首選方法。

謝謝。

斯圖爾特,

如果你或其他任何人正在尋找這個問題的解決方案,這就是我所做的。

首先得到這個腳本: 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
 }

它,你的一切都完成了。 順便說一句,我在php5 +中使用SoapServer和SoapClient

動態生成WSDL並不是經常發生的事情 - 它往往會引發一些關於服務穩定性的問題!

Zend Studio可以從PHP類生成WSDL,還有一些其他類似的工具。

如果確實需要動態生成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 like)

如果許可證適合您的項目,第一個可能是您的最佳選擇。

Zend_Soap_AutoDiscover是NuSOAP的一個很好的替代品。 但是,您也可以從頭開始創建WSDL文件,這可能非常復雜且容易出錯。 為了簡化此過程,您可以使用IDE為PHP函數生成WSDL文件,並將其作為參數傳遞給PHP SoapServer類。 查看有關如何為php native soap類生成wsdl的完整教程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM