0

WCF によって生成された WSDL があり、この WSDL を使用して PHP Web サービスを作成する必要があります。私の WSDL にはカスタム .NET クラス (complexType) へのマッピングが含まれており、同等の PHP クラスとスタブ コード (サーバー側生成) を生成できる PHP WSDL ツールが必要です。

私は wsdl2php が仕事をするための適切なツールになると読んだので、次のアドレスで試してみました: ( http://labs.wso2.org/wsf/php/wsdl2phptool.php )

スタブ コードを作成することで部分的に機能しましたが、ヘルパー クラスは作成されませんでした (関数パラメーターは anyType 型のようで、関数ごとに 1 つのパラメーターのみが生成されます)。Windowsで次の種類のコマンドで実行できるスクリプトバージョンもあります。

php wsdl2php.php -s http://My.Server.com/MyWCFService/MyWCFService.svc?wsdl > MyWebService.php

しかし、空のファイルを出力するため、何らかの理由で機能していないようです。私は .NET 開発者であるため、PHP の専門家ではありませんが、WSDL が PHP Web サービスでどのように機能するかをテストする必要があります (.NET と同じ方法で WSDL から PHP コードを生成できることを確認するだけです)。 )。

PHP Web サービスのヘルパー クラスとスタブ コードを生成する簡単な例を教えていただければ幸いです。

ありがとう!:)

4

2 に答える 2

0

解決策を見つけました!wsdl2php でスタブ コードに加えてヘルパー クラスを生成するには、単一の WSDL ファイルが必要です。wsdl2php の現在のバージョン (2.1.0) では、WCF によって生成された WSDL を理解するのが困難です。これは、WCF WSDL で使用されるインポート タグによるものです (スキーマは wsdl ドキュメントにインポートされており、wsdl2php はこれを好みません)。

WCFExtras を使用して単一の WCF WSDL を作成した後、ヘルパー クラスも生成することができました。

" http://wcfextras.codeplex.com/ "

" http://weblogs.asp.net/pglavich/archive/2010/03/16/making-wcf-output-a-single-wsdl-file-for-interop-purposes.aspx " (重要なので最初にこれを読んでください名前空間を正しく指定しないと、WCFExtras で問題が発生します)

于 2010-08-17T17:27:25.217 に答える
0

T4 テンプレートを使用して、Service 実装から ServiceProxy および DataContract クラスを生成することもできます。私は自分のプロジェクトのためにそれらを開発してきました。サンプルを含む GitHub でリリースされています。

https://github.com/schaermu/wcf-phpclient-t4

.NET ソリューションでプロキシ生成ロジックが必要な場合に備えて。

于 2010-12-14T09:21:11.110 に答える