12

WSDLファイルからPHPSOAPクライアントを生成する方法はありますか?

wsdl.exeつまり、.netのようなものsvcutil.exeで、サービスのクライアントになることができるクラスのコードを生成します。次のようなものではありません。

$WSDL     = new SOAP_WSDL($wsdl_url); 
$client   = $WSDL->getProxy(); 

私の問題は、サービスがそのWSDLを公開していない場合でも、PHPクライアントがサービスを処理できるようにしたいということです。

4

6 に答える 6

16

ジェネレーターは本当に便利だと思いました

https://github.com/wsdl2phpgenerator/wsdl2phpgenerator

手順(githubから):

  • 最新リリースからwsdl2phpgenerator-2.3.0.pharをダウンロードします
  • 「phpwsdl2phpgenerator-2.3.0.phar-iinput.wsdl -o tmp / my / directory/wsdl」を実行します

Webでホストされているwsdlでも機能します

例えば

php wsdl2phpgenerator-2.3.0.phar -i http://someurl/input.wsdl -o tmp/my/directory/wsdl
于 2014-04-08T10:57:04.653 に答える
9

generateProxyCode代わりに、パッケージSOAP_WSDL(http://pear.php.net/reference/SOAP-0.9.4/SOAP/SOAP_WSDL.html#methodgenerateProxyCode )メソッドで提供されるメソッド[]を使用して、ファイルに保存することができます。

$WSDL     = new SOAP_WSDL($wsdl_url); 
$php      = $WSDL->generateProxyCode();
file_put_contents('wsdl_proxy.php', '<?php ' . $php . ' ?>');

require 'wsdl_proxy.php';
于 2009-11-01T09:50:46.370 に答える
8

このためのアプリがあります、それはwsdl2phpgeneratorと呼ばれています:

http://code.google.com/p/wsdl2phpgenerator/

これをWSDLファイルに対して実行すると、WSDLサービスに基づいてクラスが生成されます。

于 2010-07-09T06:09:50.023 に答える
4

この投稿に出くわし、「このSOAP_WSDLを使って、一体どうやって作業するのか」と考える人を助けるためだけに。(私のように)

コマンドラインを開き、phpディレクトリに移動します(この例ではXAMPP Liteをインストールしました)

phpディレクトリに移動したら、pear.batスクリプトを実行しました。この後、cmd行を介して次のように入力することができました

pear -V(インストールのバージョンを提供します)

梨リスト

上記を入力してもSOAPが表示されない場合は、cmd行から次の手順を実行する必要があります。

  • 梨インストールNet_DIME-1.0.1

  • pear install Mail_Mime-1.5.2

  • pear install Mail-1.2.0b1

  • pear install SOAP-0.12.0

これらのパッケージをインストールして別の「ペアリスト」を実行すると、SOAPが一覧表示されます。

その場合は、SOAPの下のpearディレクトリ内にプルダウンされたphpファイルへの参照を含めることができます。

このパスの1つの例は、C:\ xampplite \ php \ PEAR\SOAPです。

于 2009-11-02T18:49:58.020 に答える
0

シンプルなPEARツールであるwsdl2phpを使用しました。プロジェクトは終了しているようですが、最新バージョンはここからダウンロードできます:http ://sourceforge.net/projects/wsdl2php/

PHP 5とPEARを備えた開発マシンが必要であり、次のPEARコマンドを使用してインストールする必要があります。

sudo pear install wsdl2php-0.2.1-pear.tgz

この後、次のコマンドを使用してPHPクラスファイルを生成できます。

wsdl2php <WSDL_URL>

SoapClientを拡張するメインクラス、および要求、応答、複雑なオブジェクトを表す他の多くのクラスを生成するため、NetBeansのような「インテリセンス」を備えたIDEで開発する場合に非常に便利です。

于 2014-02-01T12:57:22.840 に答える
0

ここにリストされているeverethingを使用しようとしました。

別の選択肢が見つかりました:https ://github.com/mikaelcom/WsdlToPhp

以前と比較したプラス:

  • 依存関係はありません。 ジェネレーターと作成されたクライアントの両方。

  • inおよびoutパラメータのクラス。

  • 作成されたクライアントの使用例。もちろんそれほど重要ではありません。しかし、時には非常に便利です

  • コードが少ない(SOAP_WSDLと比較して)

マイナス:

  • Answerと複雑なサブタイプは、技術情報を含む別のオブジェクトにラップされます。
于 2014-11-13T12:19:16.177 に答える