| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <!-- EN-Revision: 24249 -->
- <sect1 id="zend.soap.client">
- <title>Zend_Soap_Client(日本語)</title>
- <para>
- <classname>Zend_Soap_Client</classname>により<acronym>PHP</acronym>プログラマーにとって<acronym>SOAP</acronym>クライアントの開発が簡単になります。
- </para>
- <para>
- WSDLモードまたは非WSDLモードで使用できるでしょう。
- </para>
- <para>
- WSDLモードでは、<classname>Zend_Soap_Client</classname>コンポーネントは
- トランスポート層オプションを定めるためにWSDLドキュメントを使います。
- </para>
- <para>
- WSDL記述は通常、クライアントがアクセスするウェブ・サービスによって提供されます。
- WSDL記述が利用できるようにならなければ、非WSDLモードで<classname>Zend_Soap_Client</classname>を使いたいかもしれません。
- すべての<acronym>SOAP</acronym>プロトコル・オプションは、
- このモードで明示的に<classname>Zend_Soap_Client</classname>クラス上に設定されなければなりません。
- </para>
- <sect2 id="zend.soap.client.constructor">
- <title>Zend_Soap_Clientコンストラクタ</title>
- <para>
- <classname>Zend_Soap_Client</classname>コンストラクタには引数が2つあります:
- <itemizedlist>
- <listitem>
- <para>
- <code>$wsdl</code> - WSDLファイルの<acronym>URI</acronym>
- </para>
- </listitem>
- <listitem>
- <para>
- <code>$options</code> - <acronym>SOAP</acronym>クライアントオブジェクトを作成するためのオプション
- </para>
- </listitem>
- </itemizedlist>
- これらのパラメータは両方とも、
- それぞれ<methodname>setWsdl($wsdl)</methodname>や<methodname>setOptions($options)</methodname>メソッドで、
- 後から設定されるかもしれません。
- </para>
- <note>
- <title>重要</title>
- <para>
- もし非WSDLモードで<classname>Zend_Soap_Client</classname>コンポーネントを使う場合、
- 'location' および 'uri' オプションを設定し<emphasis>なければなりません</emphasis>。
- </para>
- </note>
- <para>
- 下記のオプションが許されています:
- <itemizedlist>
- <listitem>
- <para>
- 'soap_version' ('soapVersion') - 使用する<acronym>SOAP</acronym>バージョン (SOAP_1_1 または SOAP_1_2).
- </para>
- </listitem>
- <listitem>
- <para>
- 'classmap' ('classMap') -
- 一部の WSDL 型を<acronym>PHP</acronym>クラスにマップするために使います。
- </para>
- <para>
- このオプションは、キーとしてWSDL型、値として<acronym>PHP</acronym>クラス名をもつ配列でなければなりません。
- </para>
- </listitem>
- <listitem>
- <para>
- 'encoding' - 内部文字エンコーディング。 (対外的なエンコーディングとしてUTF-8が常に使われます)
- </para>
- </listitem>
- <listitem>
- <para>
- 'wsdl' <methodname>setWsdl($wsdlValue)</methodname>呼び出しと同じです。
- </para>
- <para>
- このオプションを変更すると、
- <classname>Zend_Soap_Client</classname>オブジェクトをWSDLモードに、または、から切り替えるかもしれません。
- </para>
- </listitem>
- <listitem>
- <para>
- 'uri' - <acronym>SOAP</acronym>サービスのためのターゲットのネームスペース (非WSDLモードで必要です。WSDLモードでは動作しません)
- </para>
- </listitem>
- <listitem>
- <para>
- 'location' - 要求する<acronym>URL</acronym> (非WSDLモードで必要です。WSDLモードでは動作しません)
- </para>
- </listitem>
- <listitem>
- <para>
- 'style' - 要求形式 (WSDLモードでは動作しません): <code>SOAP_RPC</code> または <code>SOAP_DOCUMENT</code>
- </para>
- </listitem>
- <listitem>
- <para>
- 'use' - メッセージをエンコードするメソッド (WSDLモードでは動作しません): <code>SOAP_ENCODED</code> または
- <code>SOAP_LITERAL</code>
- </para>
- </listitem>
- <listitem>
- <para>
- 'login' および 'password' - <acronym>HTTP</acronym>認証のための login および password
- </para>
- </listitem>
- <listitem>
- <para>
- 'proxy_host', 'proxy_port', 'proxy_login' および 'proxy_password' - プロキシ・サーバ経由の<acronym>HTTP</acronym>接続
- </para>
- </listitem>
- <listitem>
- <para>
- 'local_cert' および 'passphrase' - <acronym>HTTPS</acronym>クライアント証明書認証オプション。
- </para>
- </listitem>
- <listitem>
- <para>
- 'compression' - 圧縮オプション;
- <code>SOAP_COMPRESSION_ACCEPT</code>や<code>SOAP_COMPRESSION_GZIP</code>、
- <code>SOAP_COMPRESSION_DEFLATE</code>の組み合わせです。
- 下記のように使われるでしょう:
- </para>
- <programlisting language="php"><![CDATA[
- // レスポンスの圧縮を受け付けます
- $client = new Zend_Soap_Client("some.wsdl",
- array('compression' => SOAP_COMPRESSION_ACCEPT));
- ...
- // 圧縮レベル5でqzipを使ってリクエストを圧縮します
- $client = new Zend_Soap_Client("some.wsdl",
- array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 5));
- ...
- // deflate 圧縮を使ってリクエストを圧縮します
- $client = new Zend_Soap_Client("some.wsdl",
- array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_DEFLATE));
- ]]></programlisting>
- </listitem>
- </itemizedlist>
- </para>
- </sect2>
- <sect2 id="zend.soap.client.calls">
- <title>SOAPリクエストの実行</title>
- <para>
- <classname>Zend_Soap_Client</classname>オブジェクトを作成したら、<acronym>SOAP</acronym>リクエストを実行する準備ができます。
- </para>
- <para>
- ウェブ・サービス・メソッドそれぞれで、
- 一般的な<acronym>PHP</acronym>型のパラメータを持つ仮想<classname>Zend_Soap_Client</classname>オブジェクト・メソッドにマップされます。
- </para>
- <para>
- それを下記の例のように使います:
- </para>
- <programlisting language="php"><![CDATA[
- //****************************************************************
- // サーバのコード
- //****************************************************************
- // class MyClass {
- // /**
- // * このメソッドは ...
- // *
- // * @param integer $inputParam
- // * @return string
- // */
- // public function method1($inputParam) {
- // ...
- // }
- //
- // /**
- // * このメソッドは ...
- // *
- // * @param integer $inputParam1
- // * @param string $inputParam2
- // * @return float
- // */
- // public function method2($inputParam1, $inputParam2) {
- // ...
- // }
- //
- // ...
- // }
- // ...
- // $server = new Zend_Soap_Server(null, $options);
- // $server->setClass('MyClass');
- // ...
- // $server->handle();
- //
- //****************************************************************
- // サーバのコード終了
- //****************************************************************
- $client = new Zend_Soap_Client("MyService.wsdl");
- ...
- // $result1 は string です。
- $result1 = $client->method1(10);
- ...
- // $result2 は float です。
- $result2 = $client->method2(22, 'some string');
- ]]></programlisting>
- </sect2>
- </sect1>
|