1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- EN-Revision: 20810 -->
4 <sect1 id="zend.soap.client">
5 <title>Zend_Soap_Client</title>
8 <classname>Zend_Soap_Client</classname>により<acronym>PHP</acronym>プログラマーにとって<acronym>SOAP</acronym>クライアントの開発が簡単になります。
12 WSDLモードまたは非WSDLモードで使用できるでしょう。
16 WSDLモードでは、<classname>Zend_Soap_Client</classname>コンポーネントは
17 トランスポート層オプションを定めるためにWSDLドキュメントを使います。
21 WSDL記述は通常、クライアントがアクセスするウェブ・サービスによって提供されます。
22 WSDL記述が利用できるようにならなければ、非WSDLモードで<classname>Zend_Soap_Client</classname>を使いたいかもしれません。
23 すべての<acronym>SOAP</acronym>プロトコル・オプションは、
24 このモードで明示的に<classname>Zend_Soap_Client</classname>クラス上に設定されなければなりません。
27 <sect2 id="zend.soap.client.constructor">
28 <title>Zend_Soap_Clientコンストラクタ</title>
30 <classname>Zend_Soap_Client</classname>コンストラクタには引数が2つあります:
34 <code>$wsdl</code> - WSDLファイルの<acronym>URI</acronym>
39 <code>$options</code> - <acronym>SOAP</acronym>クライアントオブジェクトを作成するためのオプション
45 それぞれ<methodname>setWsdl($wsdl)</methodname>や<methodname>setOptions($options)</methodname>メソッドで、
52 もし非WSDLモードで<classname>Zend_Soap_Client</classname>コンポーネントを使う場合、
53 'location' および 'uri' オプションを設定し<emphasis>なければなりません</emphasis>。
62 'soap_version' ('soapVersion') - 使用する<acronym>SOAP</acronym>バージョン (SOAP_1_1 または SOAP_1_2).
67 'classmap' ('classMap') -
68 一部の WSDL 型を<acronym>PHP</acronym>クラスにマップするために使います。
71 このオプションは、キーとしてWSDL型、値として<acronym>PHP</acronym>クラス名をもつ配列でなければなりません。
76 'encoding' - 内部文字エンコーディング。 (対外的なエンコーディングとしてUTF-8が常に使われます)
81 'wsdl' <methodname>setWsdl($wsdlValue)</methodname>呼び出しと同じです。
85 <classname>Zend_Soap_Client</classname>オブジェクトをWSDLモードに、または、から切り替えるかもしれません。
90 'uri' - <acronym>SOAP</acronym>サービスのためのターゲットのネームスペース (非WSDLモードで必要です。WSDLモードでは動作しません)
95 'location' - 要求する<acronym>URL</acronym> (非WSDLモードで必要です。WSDLモードでは動作しません)
100 'style' - 要求形式 (WSDLモードでは動作しません): <code>SOAP_RPC</code> または <code>SOAP_DOCUMENT</code>
105 'use' - メッセージをエンコードするメソッド (WSDLモードでは動作しません): <code>SOAP_ENCODED</code> または
106 <code>SOAP_LITERAL</code>
111 'login' および 'password' - <acronym>HTTP</acronym>認証のための login および password
116 'proxy_host', 'proxy_port', 'proxy_login' および 'proxy_password' - プロキシ・サーバ経由の<acronym>HTTP</acronym>接続
121 'local_cert' および 'passphrase' - <acronym>HTTPS</acronym>クライアント証明書認証オプション。
126 'compression' - 圧縮オプション;
127 <code>SOAP_COMPRESSION_ACCEPT</code>や<code>SOAP_COMPRESSION_GZIP</code>、
128 <code>SOAP_COMPRESSION_DEFLATE</code>の組み合わせです。
130 <programlisting language="php"><![CDATA[
132 $client = new Zend_Soap_Client("some.wsdl",
133 array('compression' => SOAP_COMPRESSION_ACCEPT));
136 // 圧縮レベル5でqzipを使ってリクエストを圧縮します
137 $client = new Zend_Soap_Client("some.wsdl",
138 array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 5));
141 // deflate 圧縮を使ってリクエストを圧縮します
142 $client = new Zend_Soap_Client("some.wsdl",
143 array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_DEFLATE));
151 <sect2 id="zend.soap.client.calls">
152 <title>SOAPリクエストの実行</title>
155 <classname>Zend_Soap_Client</classname>オブジェクトを作成したら、<acronym>SOAP</acronym>リクエストを実行する準備ができます。
159 一般的な<acronym>PHP</acronym>型のパラメータを持つ仮想<classname>Zend_Soap_Client</classname>オブジェクト・メソッドにマップされます。
164 <programlisting language="php"><![CDATA[
165 //****************************************************************
167 //****************************************************************
172 // * @param integer $inputParam
175 // public function method1($inputParam) {
182 // * @param integer $inputParam1
183 // * @param string $inputParam2
186 // public function method2($inputParam1, $inputParam2) {
193 // $server = new Zend_Soap_Server(null, $options);
194 // $server->setClass('MyClass');
196 // $server->handle();
198 //****************************************************************
200 //****************************************************************
202 $client = new Zend_Soap_Client("MyService.wsdl");
205 // $result1 は string です。
206 $result1 = $client->method1(10);
209 // $result2 は float です。
210 $result2 = $client->method2(22, 'some string');