Zend_Soap_Client.xml 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 24249 -->
  4. <sect1 id="zend.soap.client">
  5. <title>Zend_Soap_Client(日本語)</title>
  6. <para>
  7. <classname>Zend_Soap_Client</classname>により<acronym>PHP</acronym>プログラマーにとって<acronym>SOAP</acronym>クライアントの開発が簡単になります。
  8. </para>
  9. <para>
  10. WSDLモードまたは非WSDLモードで使用できるでしょう。
  11. </para>
  12. <para>
  13. WSDLモードでは、<classname>Zend_Soap_Client</classname>コンポーネントは
  14. トランスポート層オプションを定めるためにWSDLドキュメントを使います。
  15. </para>
  16. <para>
  17. WSDL記述は通常、クライアントがアクセスするウェブ・サービスによって提供されます。
  18. WSDL記述が利用できるようにならなければ、非WSDLモードで<classname>Zend_Soap_Client</classname>を使いたいかもしれません。
  19. すべての<acronym>SOAP</acronym>プロトコル・オプションは、
  20. このモードで明示的に<classname>Zend_Soap_Client</classname>クラス上に設定されなければなりません。
  21. </para>
  22. <sect2 id="zend.soap.client.constructor">
  23. <title>Zend_Soap_Clientコンストラクタ</title>
  24. <para>
  25. <classname>Zend_Soap_Client</classname>コンストラクタには引数が2つあります:
  26. <itemizedlist>
  27. <listitem>
  28. <para>
  29. <code>$wsdl</code> - WSDLファイルの<acronym>URI</acronym>
  30. </para>
  31. </listitem>
  32. <listitem>
  33. <para>
  34. <code>$options</code> - <acronym>SOAP</acronym>クライアントオブジェクトを作成するためのオプション
  35. </para>
  36. </listitem>
  37. </itemizedlist>
  38. これらのパラメータは両方とも、
  39. それぞれ<methodname>setWsdl($wsdl)</methodname>や<methodname>setOptions($options)</methodname>メソッドで、
  40. 後から設定されるかもしれません。
  41. </para>
  42. <note>
  43. <title>重要</title>
  44. <para>
  45. もし非WSDLモードで<classname>Zend_Soap_Client</classname>コンポーネントを使う場合、
  46. 'location' および 'uri' オプションを設定し<emphasis>なければなりません</emphasis>。
  47. </para>
  48. </note>
  49. <para>
  50. 下記のオプションが許されています:
  51. <itemizedlist>
  52. <listitem>
  53. <para>
  54. 'soap_version' ('soapVersion') - 使用する<acronym>SOAP</acronym>バージョン (SOAP_1_1 または SOAP_1_2).
  55. </para>
  56. </listitem>
  57. <listitem>
  58. <para>
  59. 'classmap' ('classMap') -
  60. 一部の WSDL 型を<acronym>PHP</acronym>クラスにマップするために使います。
  61. </para>
  62. <para>
  63. このオプションは、キーとしてWSDL型、値として<acronym>PHP</acronym>クラス名をもつ配列でなければなりません。
  64. </para>
  65. </listitem>
  66. <listitem>
  67. <para>
  68. 'encoding' - 内部文字エンコーディング。 (対外的なエンコーディングとしてUTF-8が常に使われます)
  69. </para>
  70. </listitem>
  71. <listitem>
  72. <para>
  73. 'wsdl' <methodname>setWsdl($wsdlValue)</methodname>呼び出しと同じです。
  74. </para>
  75. <para>
  76. このオプションを変更すると、
  77. <classname>Zend_Soap_Client</classname>オブジェクトをWSDLモードに、または、から切り替えるかもしれません。
  78. </para>
  79. </listitem>
  80. <listitem>
  81. <para>
  82. 'uri' - <acronym>SOAP</acronym>サービスのためのターゲットのネームスペース (非WSDLモードで必要です。WSDLモードでは動作しません)
  83. </para>
  84. </listitem>
  85. <listitem>
  86. <para>
  87. 'location' - 要求する<acronym>URL</acronym> (非WSDLモードで必要です。WSDLモードでは動作しません)
  88. </para>
  89. </listitem>
  90. <listitem>
  91. <para>
  92. 'style' - 要求形式 (WSDLモードでは動作しません): <code>SOAP_RPC</code> または <code>SOAP_DOCUMENT</code>
  93. </para>
  94. </listitem>
  95. <listitem>
  96. <para>
  97. 'use' - メッセージをエンコードするメソッド (WSDLモードでは動作しません): <code>SOAP_ENCODED</code> または
  98. <code>SOAP_LITERAL</code>
  99. </para>
  100. </listitem>
  101. <listitem>
  102. <para>
  103. 'login' および 'password' - <acronym>HTTP</acronym>認証のための login および password
  104. </para>
  105. </listitem>
  106. <listitem>
  107. <para>
  108. 'proxy_host', 'proxy_port', 'proxy_login' および 'proxy_password' - プロキシ・サーバ経由の<acronym>HTTP</acronym>接続
  109. </para>
  110. </listitem>
  111. <listitem>
  112. <para>
  113. 'local_cert' および 'passphrase' - <acronym>HTTPS</acronym>クライアント証明書認証オプション。
  114. </para>
  115. </listitem>
  116. <listitem>
  117. <para>
  118. 'compression' - 圧縮オプション;
  119. <code>SOAP_COMPRESSION_ACCEPT</code>や<code>SOAP_COMPRESSION_GZIP</code>、
  120. <code>SOAP_COMPRESSION_DEFLATE</code>の組み合わせです。
  121. 下記のように使われるでしょう:
  122. </para>
  123. <programlisting language="php"><![CDATA[
  124. // レスポンスの圧縮を受け付けます
  125. $client = new Zend_Soap_Client("some.wsdl",
  126. array('compression' => SOAP_COMPRESSION_ACCEPT));
  127. ...
  128. // 圧縮レベル5でqzipを使ってリクエストを圧縮します
  129. $client = new Zend_Soap_Client("some.wsdl",
  130. array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 5));
  131. ...
  132. // deflate 圧縮を使ってリクエストを圧縮します
  133. $client = new Zend_Soap_Client("some.wsdl",
  134. array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_DEFLATE));
  135. ]]></programlisting>
  136. </listitem>
  137. </itemizedlist>
  138. </para>
  139. </sect2>
  140. <sect2 id="zend.soap.client.calls">
  141. <title>SOAPリクエストの実行</title>
  142. <para>
  143. <classname>Zend_Soap_Client</classname>オブジェクトを作成したら、<acronym>SOAP</acronym>リクエストを実行する準備ができます。
  144. </para>
  145. <para>
  146. ウェブ・サービス・メソッドそれぞれで、
  147. 一般的な<acronym>PHP</acronym>型のパラメータを持つ仮想<classname>Zend_Soap_Client</classname>オブジェクト・メソッドにマップされます。
  148. </para>
  149. <para>
  150. それを下記の例のように使います:
  151. </para>
  152. <programlisting language="php"><![CDATA[
  153. //****************************************************************
  154. // サーバのコード
  155. //****************************************************************
  156. // class MyClass {
  157. // /**
  158. // * このメソッドは ...
  159. // *
  160. // * @param integer $inputParam
  161. // * @return string
  162. // */
  163. // public function method1($inputParam) {
  164. // ...
  165. // }
  166. //
  167. // /**
  168. // * このメソッドは ...
  169. // *
  170. // * @param integer $inputParam1
  171. // * @param string $inputParam2
  172. // * @return float
  173. // */
  174. // public function method2($inputParam1, $inputParam2) {
  175. // ...
  176. // }
  177. //
  178. // ...
  179. // }
  180. // ...
  181. // $server = new Zend_Soap_Server(null, $options);
  182. // $server->setClass('MyClass');
  183. // ...
  184. // $server->handle();
  185. //
  186. //****************************************************************
  187. // サーバのコード終了
  188. //****************************************************************
  189. $client = new Zend_Soap_Client("MyService.wsdl");
  190. ...
  191. // $result1 は string です。
  192. $result1 = $client->method1(10);
  193. ...
  194. // $result2 は float です。
  195. $result2 = $client->method2(22, 'some string');
  196. ]]></programlisting>
  197. </sect2>
  198. </sect1>