自動検出自動検出導入Zend Frameworkの中で実装されるSOAP機能は、 すべてのステップをより単純なSOAP通信のために必要とされるようにすることを目的とします。 SOAPは言語に依存しないプロトコルです。 そのため、PHPからPHPへの通信だけのために使われないかもしれません。 Zend Frameworkが利用されるかもしれないSOAPアプリケーションのために、 3種類の構成があります:
SOAPサーバーで提供される機能を常に知っていなければなりません。 » WSDLは ネットワーク・サービスAPIを詳細に記述するために使われます。 WSDL言語は、十分に複雑です。 (詳しくは» http://www.w3.org/TR/wsdlをご覧下さい) そのため、WSDLの正しい説明を用意することは困難です。 もう一つの問題は、すでに既存のWSDLの変化をネットワーク・サービスAPIで同期することです。 両方の問題は、WSDL自動生成によって解決されるかもしれません。 この必要条件は、SOAPサーバー自動検出です。 それはSOAPサーバー・アプリケーションで使われる、 オブジェクトに類似したオブジェクトを組み立て、 必要な情報を引き出して、この情報を使う正しいWSDLを生成します。 SOAPサーバー・アプリケーションのためにZend Frameworkを使う2つの方法があります:
両方のメソッドは、Zend Framework 自動検出機能によってサポートされます。 Zend_Soap_AutoDiscoverクラスも、 PHPから» XSD型までデータ型マッピングをサポートします。 これは自動検出機能の一般的な用法の例です。 handle()関数はWSDLファイルを生成してブラウザーにポストします。
ファイルまたはXMLストリングとして保存するために生成されたWSDLファイルへのアクセスも必要ならば、 AutoDiscoverクラスが提供する dump($filename)または toXml()関数を使えます。
クラスの自動検出クラスがSOAPサーバー機能を提供することに使われるならば、 同じクラスはWSDL生成のためにZend_Soap_AutoDiscoverに提供されなければなりません:
WSDL生成の間、以下の規則が使われます:
関数の自動検出関数のセットがSOAPサーバー機能を提供することに使われるならば、 同じセットはWSDL生成のためにZend_Soap_AutoDiscoveryに提供されなければなりません:
WSDL生成の間、以下の規則が使われます:
データ型の自動検出入出力データ型は、以下のマッピングを用いて、ネットワーク・サービス型に変換されます:
xsd: が "http://www.w3.org/2001/XMLSchema" ネームスペースであるところでは、
soap-enc: は "http://schemas.xmlsoap.org/soap/encoding/" ネームスペースで、
tns: はサービスのための "target namespace" です。
WSDLバインディングスタイル
WSDLは、異なるトランスポートのメカニズムとスタイルを提供します。
これは、WSDLのバインディング・セクションの範囲内で、
[1]は複雑な型のための検出アルゴリズムとして
クラスで生成されます。
AutoDiscoverコンストラクタの最初のパラメータは、
を実装した、
どんな複雑な型ストラテジーでも、クラスの名前を持つ文字列でもとります。
との後方互換性のために、
ブール変数はのように解析されます。
詳しくはをご覧下さい。
|