Zend_Soap_Server(日本語)Zend_Soap_Serverクラスは、 ウェブ・サービス部分の開発をPHPプログラマーにとって簡単にすることを目的としています。 それは、ウェブサービスAPIを定義するクラスまたは機能を使って、 WSDLモードまたは非WSDLモードで使われるかもしれません。 Zend_Soap_ServerコンポーネントがWSDLモードで動くとき、 サーバオブジェクトの挙動とトランスポート層オプションを定義する すでに用意されたWSDLドキュメントを使います。 WSDLドキュメントは Zend_Soap_AutoDiscoveryコンポーネント によって提供される機能によって自動的に生成されるか、 または、Zend_Soap_Wsdlクラスや、 その他のXML生成ツールを使って、 手動で構成されます。 非WSDLモードが使われるならば、 すべてのプロトコル・オプションはオプション・メカニズムを用いて設定されなければなりません。 Zend_Soap_ServerコンストラクタZend_Soap_Serverコンストラクタは、 WSDLモードと非WSDLモードとでは少し使い方が違います。 WSDLモードのためのZend_Soap_ServerコンストラクタWSDLモードで動作する場合、Zend_Soap_Serverコンストラクタは2つの引数を受け取ります:
非WSDLモードのためのZend_Soap_Serverコンストラクタ非WSDLモードでZend_Soap_Server機能を使うつもりなら、 最初のコンストラクタ・パラメータはNULLに設定しなければなりません。 この場合、'uri' オプションを設定しなければなりません。(下記参照)
2番目のコンストラクタ・パラメータ ( 非WSDLモードでは下記のオプションが許されています:
ウェブ・サービスAPIを定義するメソッドSOAPを通してPHPコードにアクセスすることを許可したいときに、 ウェブサービスAPIを定義する2つの方法があります。 最初の一つは、ウェブサービスAPIを完全に記述しなければならないZend_Soap_Serverオブジェクトに対して、 いくつかのクラスを付与することです:
ウェブサービスAPIを定義する2つ目の方法は、 関数のセットや addFunction()または loadFunctions()メソッドを使うことです:
リクエストおよびレスポンスオブジェクトの操作
Zend_Soap_Serverコンポーネントは自動的にリクエスト/レスポンス処理を実行します。 しかし、その処理を捕まえて何らかの事前もしくは事後の処理をさせることもできます。 リクエスト処理Zend_Soap_Server::handle()メソッドは、 標準的な入力ストリーム ('php://input') からリクエストを取得します。 それは、 handle()メソッドにオプションのパラメータを供給することによって、 または、 setRequest()メソッドを用いてリクエストを設定することによって 上書きされるかもしれません:
リクエストオブジェクトは以下のどれかを用いて表されるかもしれません:
最後に処理されたリクエストは getLastRequest()メソッドを使ってXML文字列として取得されます: レスポンスの事前処理Zend_Soap_Server::handle()メソッドは、出力ストリームに生成されたレスポンスを自動的に送ります。 それは setReturnResponse()にパラメータとして TRUEまたはFALSEを与えてブロックできます。 [4] setReturnResponse() 生成されたレスポンスはこの場合、 handle()メソッドにより戻されます。
ある処理のために、最後のレスポンスを getLastResponse()メソッドで取得することもできます: [1]
あとでメソッドを使って
設定されるかもしれません。
[2]
オプションは後でを使って
設定されるかもしれません。
[3]
オプションは後でメソッドを使って
設定されるかもしれません。
[4]
戻るレスポンスフラグの現在の状態は
メソッドによりリクエストされます。
|