人気のあるサーバーサイド プログラミング言語として、PHP はさまざまなニーズを満たす豊富な拡張機能を提供します。その中で、SOAP 拡張機能は Web サービスを作成および使用するためのツールであり、開発者はこれを使用して PHP でクロスプラットフォームのデータ送信を実装できます。 SOAP 拡張機能の使用方法を学びたい場合は、この入門ガイドが最適です。
1. SOAP の簡単な説明
SOAP は、分散環境での通信に使用される XML ベースのプロトコルです。 SOAP プロトコルは、ネットワーク上で複雑なデータ構造を送信できる標準メッセージ形式を定義します。実際、SOAP プロトコルは、HTTP や SMTP などのトランスポート プロトコルを介して XML 形式でデータを送信する方法を定義する仕様です。
SOAP プロトコルを使用して Web サービスを作成できます。これは、他のアプリケーションによる呼び出しのためのいくつかのメソッドを公開するだけです。 SOAP プロトコルは、メソッド呼び出し情報を XML 形式のドキュメントにカプセル化し、HTTP プロトコルを通じてサーバーに送信します。サーバーはリクエストを受け入れ、応答を返します。最後に、クライアントは応答を受信した後、XML ドキュメントを解析して取得します。結果。
2. SOAP 拡張機能
PHP では、SOAP 拡張機能は、Web サービスを簡単に作成して使用できるいくつかのクラスと関数を提供します。 SOAP 拡張機能を使用する場合は、最初に拡張機能をロードする必要があります。php.ini ファイルにコード
extension=php_soap.dll
を追加するか、関数 dl("php_soap.dll"); を使用します。
拡張機能を動的にロードします。
3. SOAP サーバーの作成
SOAP 拡張機能を使用して SOAP サーバーを作成するのは非常に簡単です。サーバー内でいくつかのインターフェイスを定義し、標準の WSDL ファイルを使用してインターフェイスを公開する必要があります。外部の世界に接続し、これらのインターフェイスを実装します。
次は、SOAP サーバーを作成し、単純なメソッドを公開する方法を示す簡単な例です。
class MyService { /** * @param int $a * @param int $b * @return int */ public function add($a, $b) { return $a + $b; } } $options = array( 'uri' => 'http://localhost/mySoapServer/', 'location' => 'http://localhost/mySoapServer/' ); $server = new SoapServer(null, $options); $server->setClass('MyService'); $server->handle();
上記のコードは、MyService
クラスを作成します。このクラスは、 add
2 つの整数の合計を計算するメソッド。次に、SoapServer
クラスを使用して SOAP サーバーを作成し、setClass
メソッドを通じて MyService
クラスを外部に公開します。最後に、handle
メソッドを呼び出して SOAP サーバーを実行します。
4. SOAP クライアントの使用
SOAP サーバーの作成はこの記事の主な内容ではありません。以下では、SOAP クライアントを使用して SOAP が提供するメソッドを呼び出す方法に焦点を当てます。サーバ。
SOAP クライアントの使用は非常に簡単で、次のコードによって実現できます。
$options = array( 'uri' => 'http://localhost/mySoapServer/', 'location' => 'http://localhost/mySoapServer/', 'style' => SOAP_DOCUMENT, 'use' => SOAP_LITERAL, 'exceptions' => true, ); $client = new SoapClient(null, $options); $result = $client->__soapCall('add', array('a' => 1, 'b' => 2)); echo $result; //输出3
上記のコードは、SoapClient
オブジェクトを作成し、__soapCall# を使用します。 # #このメソッドはサーバーの
add メソッドを呼び出し、2 つのパラメーターを渡します。最後に結果を出力します。
SoapClient オブジェクトを作成するときは、いくつかのオプションを渡す必要があります。これらのオプションは、SOAP プロトコルのいくつかの特性を指定するために使用されます。ここでは、
SOAP_DOCUMENT と
SOAP_LITERALメッセージ形式とパラメータ形式を指定する 2 つのオプション。詳細についてはマニュアルを参照してください。
__soapCall メソッドの最初のパラメーターは呼び出されるメソッドの名前であり、2 番目のパラメーターは渡されるパラメーター (連想配列) であることに注意してください。
try { $result = $client->__soapCall('add', array('a' => 1, 'b' => 'not a number')); echo $result; } catch (SoapFault $e) { echo "SOAP Fault: {$e->faultstring}"; } catch (Exception $e) { echo "Exception: {$e->getMessage()}"; }上の例では、数値以外のパラメータを意図的にサーバーに渡しており、サーバーは SOAP フォールト例外をスローします。 catch ブロックでは、まず SOAP フォールト例外かどうかを判断し、そうであれば例外情報の
faultstring 属性を出力します。それ以外の場合は、通常例外のgetMessage()メソッドの戻り値が出力されます。
以上がPHP 入門: SOAP 拡張機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。