私はPHP 5でネイティブSOAPクラスを使用しています.NuSOAPからネイティブクラスへの変更が速く(NuSOAPの開発が終了したように見えます)しかし、PHP 5 SOAPにはWSDLを生成する機能がありません。PHPのネイティブSOAPクラスを使用しているときにWSDLを生成しますか?
PHPでWSDLを生成した経験がありますか?その場合は、お好みの方法をお勧めします。
ありがとうございました。
私はPHP 5でネイティブSOAPクラスを使用しています.NuSOAPからネイティブクラスへの変更が速く(NuSOAPの開発が終了したように見えます)しかし、PHP 5 SOAPにはWSDLを生成する機能がありません。PHPのネイティブSOAPクラスを使用しているときにWSDLを生成しますか?
PHPでWSDLを生成した経験がありますか?その場合は、お好みの方法をお勧めします。
ありがとうございました。
オンザフライでWSDLを生成することは、非常に頻繁に起こることではなく、サービスの安定性に関するいくつかの疑問を提起する傾向があります。
Zend StudioはPHPクラスからWSDLを生成できますが、他にも同様のツールがいくつかあります。
あなたはZend Frameworkのライブラリを見て、動的にWSDLを生成する必要がある場合:Zend_Soap_AutoDiscover
スチュアート、
あなたや他の誰がこの問題の解決策を探している場合は、ここで私がやったことです。
まず、このスクリプトを取得する: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
}
それは、あなたのすべてが完了しました。 Btw、私はSoapServerとSoapClientをphp5で使っています+
Zend_Soap_AutoDiscoverはNuSOAPの良い選択肢です。しかし、非常に複雑でエラーが発生しやすいWSDLファイルを最初から作成することもできます。この処理を簡単にするために、IDEを使用してPHP関数用のWSDLファイルを生成し、これをパラメータとしてPHP SoapServerクラスに渡すことができます。 How to generate wsdl for php native soap class
に関する完全なチュートリアルをチェックしてくださいあなたはこれらのオプションを試すことができます。
- 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)
最初のものは、あなたかもしれませんライセンスがあなたのプロジェクトに合っている場合は最高のオプションです。
Zend Soap自動検出がアクティブに維持されています。私はそれを使用し、私はそれに満足しています。 –
Ciaran、私は働いている会社で私が実装したサービスについて考えています。私たちはかなり良い安定したアプリとサービスを持っていますが、新しいパートナーや既存の人には、私たちの両方にとって良い新しい機能が必要になるため、手動で物事を開いたり書くのはあまり良いことではありません。正しいIHMOは、これらのシナリオが起こったとき、あるいはITチームが変更された場合に、テストされた安全な方法を利用することです。 – Dave