ホームページ >バックエンド開発 >PHPチュートリアル >PHP Webサービス
php は、soap 操作専用の拡張ライブラリを提供します。この拡張ライブラリを使用すると、soap 操作を php で直接実行できます。ここでは石鹸の基本的な動作を紹介します。
1. SOAP 拡張機能の使い方
php の SOAP 拡張ライブラリは、SOAP プロトコルを介してクライアントとサーバー間のデータ対話を実現します。 php5.0 以降、php には SOAP サポートが組み込まれています。 SOAP 拡張ライブラリを使用するには、まず PHP インストール ディレクトリ内の構成ファイル php.ini を変更して、SOAP 拡張ライブラリをアクティブにする必要があります。 php.ini ファイル内で以下に示すコード行を見つけて、その前のコメント (;) を削除します。
; extension=php_soap.dll
変更後、Webサーバーを再起動してsoap拡張機能を有効にします。 SOAP 拡張ライブラリには、主に 3 種類のオブジェクトがあります:
。
1. SoapServer
SoapServer は、PHP サーバーサイド ページを作成するときに呼び出して応答データを返すことができる関数を定義するために使用されます。 SoapServer オブジェクトを作成するための構文形式は次のとおりです:
$soap = new SoapServer($wsdl,$array);
このうち、$wsdl は、soap で使用される wsdl ファイルであり、wsdl は、soap を記述するための標準形式です。 Web サービス。 $wsdl が null に設定されている場合は、wsdl モードが使用されていないことを意味します。 $array は SoapServer の属性情報であり、配列です。 SoapServer オブジェクトの addFunction メソッドは、クライアントが呼び出すことができる関数を宣言するために使用されます。構文形式は次のとおりです。
$soap->addFunction($function_name); このうち、$soap は SoapServer です。 object、$function_name は呼び出す必要がある関数の名前です。 SoapServer オブジェクトの handle メソッドは、ユーザー入力を処理し、対応する関数を呼び出すために使用され、最終的に処理結果をクライアントに返します。構文形式は次のとおりです:
$soap->handle([$soap_request]);
このうち、$soap は SoapServer オブジェクトであり、$soap_request はユーザーのリクエスト情報を表すために使用されるオプションのパラメーターです。 。 $soap_request が指定されていない場合、サーバーはユーザーからのすべてのリクエストを受け入れることを意味します。
2. SoapClient
SoapClient は、リモート サーバー上の SoapServer ページを呼び出すために使用され、対応する関数への呼び出しを実装します。 SoapClient オブジェクトを作成するための構文形式は次のとおりです:
$soap = new SoapClient($wsdl,$array);
このうち、パラメータ $wsdl と $array は SoapServer と同じです。 SoapClient オブジェクトを作成した後、サーバー ページで関数を呼び出すことは、SoapClient メソッドを呼び出すことと同じです。
$soap->user_function($params); そのうち、 $soap は SoapClient オブジェクト、user_function はサーバー側で呼び出される関数、$params は関数に渡されるパラメーターです。
3. SoapFault
SoapFault は、SOAP アクセス中に発生する可能性のあるエラーを生成するために使用されます。 soapFault オブジェクトを作成する構文形式は次のとおりです:
$fault = new SoapFault($faultcode,$faultstring);
このうち、$faultcode はユーザー定義のエラー コード、$faultstring はユーザー定義のエラー コードです。エラーメッセージ。 soapFault オブジェクトは、サーバー側のページでエラーが発生したとき、またはユーザーが SoapFault オブジェクトを作成したときに自動的に生成されます。 Soap アクセス中に発生したエラーの場合、クライアントは SoapFalut オブジェクトをキャプチャすることで、対応するエラー情報を取得できます。
クライアント側で SoapFault オブジェクトをキャプチャした後、次のコードを通じてエラー コードとエラー情報を取得できます。
$fault->faultcode;//エラーコード
$fault->faultstring;//エラーメッセージ
このうち、$fault は先ほど作成した SoapFault オブジェクトです。