ホームページ >バックエンド開発 >PHPチュートリアル >Webサービスインターフェースサービスを実装するPHP SOAPの詳細説明
Web サービスとは何ですか? 詳細については説明しませんが、百科事典の説明Web サービス Baidu 百科事典 を参照してください。
Soap は、Web サービスの実装で使用されるプロトコルおよび技術仕様です。
Web サービスのインターフェースを実装するには、wsdl ドキュメントの生成が必要な方法と、wsdl ドキュメントの生成が不要な方法の 2 つの方法があります。
実際に運用する前に、お使いの環境がsoapをサポートしているかどうかを確認し、php.ini設定ファイルを修正して「soap.wsdl_cache_enabled」項目を0に設定してください。
wsdl ドキュメントを生成する必要はありません
このメソッドは、wsdl ドキュメントを生成する必要があるメソッドよりも簡単ですが、Get the __getFunctions などの一部のメソッドはサポートされていません。操作方法の()が適切かどうかはあなたの選択次第です。
サーバー側 ts1.php
<?php class testA{ public function sayHi($str){ return 'hi,'.$str; } public function add($a,$b){ return $a+$b; } } $ss = new SoapServer(null, array('uri'=>'sampleA')); $ss->setClass('testA'); $ss->handle();
サーバー側 ts1.php ファイルで、クラスを作成し、次に SoapServer を作成して設定を行います。一貫性を確保するために uri が使用されます。セックス。
クライアント側 tc1.php
<?php $client = new SoapClient(null, array( 'location'=>'http://10.0.0.232:1075/soap/ts1.php', 'uri'=>'sampleA' )); echo $client->sayHi('Taylor,Swift'); echo "<br/>"; echo $client->add(1,2);
クライアント側では、SoapClient オブジェクトを使用してリクエストを作成します。場所はリクエストの特定のアドレスを指定します。の値はuri はサーバー側で設定したものと同じです。Consistent、一貫性を確保するために使用されます。
ブラウザに http://10.0.0.232:1075/soap/tc1.php と入力してアクセスすると、次のような出力が表示されます:
この方法はwsdlドキュメントを生成する必要がなく実装が容易ですが、wsdlドキュメントが存在しないため、クライアントは該当する操作メソッドを取得できません。wsdlドキュメントを生成する方法では、クライアントが独自に生成することができます。リクエストアドレスに基づく wsdl ドキュメント サーバーによって公開されているすべてのインターフェイスを取得します。
wsdl ドキュメントの生成方法
wsdl ドキュメントは XML ドキュメントであり、通常はパブリック クラス ライブラリ SoapDiscovery を使用して生成でき、Baidu Netdisk と共有できます。必要に応じて、SoapDiscovery.class.php を直接ダウンロードします。
サーバーサイド ts2.php
<?php define('WSDL_FILE','ts2.wsdl'); if(!file_exists(WSDL_FILE)){ require_once('SoapDiscovery.class.php'); $sd = new SoapDiscovery('testD', 'liang'); $str = $sd->getWSDL(); file_put_contents(WSDL_FILE, $str); } $ss = new SoapServer(WSDL_FILE); $ss->setClass('testD'); $ss->handle(); class testD{ public function sayHello($world){ return 'hello,'.$world; } public function add($a, $b){ return $a+$b; } }
サーバーサイド ts2.php は、まず必要な wsdl ファイルが存在するかどうかを確認し、存在しない場合は作成します。 wsdl ドキュメントを使用しているため、新しい SoapServer を使用するときに wsdl ドキュメントのアドレスを直接記述することができます。
クライアント側 tc2.php
<?php $client = new SoapClient('http://10.0.0.232:1075/soap/ts2.wsdl'); print_r($client->__getFunctions()); echo "<br/>"; echo $client->sayHello('Avril Lavigne'); echo "<br/>"; echo $client->add(9,8);
クライアント側の tc2.php ファイルには、SoapClient オブジェクトを作成するときに、要求された wsdl のアドレスを直接入力します。このドキュメントは ts2.php によって生成されます。
サーバー側の ts2.php とクライアント側の tc2.php が記述されたので、今度は ts2.php をリクエストする必要があります。なぜリクエストするのでしょうか?
最初に ts2.php で wsdl ファイルを作成する必要があるため、これはもちろん初回のみで、wsdl ドキュメントの作成後は再度行う必要はありません。
(後で ts2.php が変更された場合でも、古い wsdl ドキュメントを削除してから、ts2.php を再度リクエストして新しい wsdl ドキュメントを生成する必要があります。)
1. ts2 をリクエストします。 .php は、wsdl ドキュメント http://10.0.0.232:1075/soap/ts2.php を生成するために使用されます。
2. 戻り結果を表示するために tc2.php をリクエストします:
3. ブラウザを通じて、wsdl ドキュメントのアドレスに直接アクセスすると、 wsdl ドキュメントを参照できます。具体的な内容:
php SOAP は、認証、ヘッダー設定など、他のさまざまな操作もサポートしています。必要に応じて、公式ドキュメントを参照してください。これらの機能のドキュメント。
以上がWebサービスインターフェースサービスを実装するPHP SOAPの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。