Zend_Soap_Client.xml 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.soap.client">
  5. <title>Zend_Soap_Client</title>
  6. <para>
  7. <classname>Zend_Soap_Client</classname> est une classe destinée à simplifier
  8. l'interrogation de services <acronym>SOAP</acronym>.
  9. </para>
  10. <para>Cette classe peut être utilisée en mode WSDL ou non WSDL.</para>
  11. <para>
  12. Lorsque Zend_Soap_Client fonctionne en mode WSDL, il utilise le document WSDL pour
  13. définir les options de la couche de transport des données.
  14. </para>
  15. <para>
  16. Le fichier WSDL est en général fournit par le service auquel vous souhaitez accéder.
  17. Si la description WSDL n'est pas disponible, vous pouvez vouloir utiliser
  18. <classname>Zend_Soap_Client</classname> en mode non WSDL . Dans ce cas, toutes les options
  19. du protocole devront être définies explicitement dans la classe
  20. <classname>Zend_Soap_Client</classname>.
  21. </para>
  22. <sect2 id="zend.soap.client.constructor">
  23. <title>Constructeur de <classname>Zend_Soap_Client</classname></title>
  24. <para>
  25. Le constructeur de <classname>Zend_Soap_Client</classname> accepte 2 paramètres:
  26. <itemizedlist>
  27. <listitem>
  28. <para><varname>$wsdl</varname> : l'URI du fichier WSDL.</para>
  29. </listitem>
  30. <listitem>
  31. <para><varname>$options</varname> : options de création.</para>
  32. </listitem>
  33. </itemizedlist> Ces deux paramètres peuvent être insérés après construction, ceci
  34. grâce aux méthodes <methodname>setWsdl($wsdl)</methodname> et
  35. <methodname>setOptions($options)</methodname>.
  36. </para>
  37. <note>
  38. <title>Important!</title>
  39. <para>
  40. Si vous utilisez Zend_Soap_Client en mode non WSDL, vous
  41. <emphasis>devez</emphasis> fournir les options 'location' et 'uri'.
  42. </para>
  43. </note>
  44. <para>
  45. Les options suivantes sont reconnues: <itemizedlist>
  46. <listitem>
  47. <para>
  48. 'soap_version' ('soapVersion') : version du protocole <acronym>SOAP</acronym> à utiliser
  49. (SOAP_1_1 ou <acronym>SOAP</acronym>_1_2).
  50. </para>
  51. </listitem>
  52. <listitem>
  53. <para>
  54. 'classmap' ('classMap') : doit être utilisé pour faire correspondre
  55. des types WSDL à des classes <acronym>PHP</acronym>.
  56. </para>
  57. <para>
  58. Cette option doit être un tableau avec comme clés les types WSDL et
  59. comme valeurs les noms des classes <acronym>PHP</acronym>.
  60. </para>
  61. </listitem>
  62. <listitem>
  63. <para>
  64. 'encoding' : encodage interne des caractères (l'encodage externe est
  65. toujours UTF-8).
  66. </para>
  67. </listitem>
  68. <listitem>
  69. <para>
  70. 'wsdl' : qui est équivalent à un appel à
  71. <methodname>setWsdl($wsdlValue)</methodname>.
  72. </para>
  73. <para>
  74. Changer cette option peut faire basculer Zend_Soap_Client en mode WSDL
  75. ou non WSDL.
  76. </para>
  77. </listitem>
  78. <listitem>
  79. <para>
  80. 'uri' : cible du service <acronym>SOAP</acronym> (requis pour le mode non WSDL, inusité
  81. en mode WSDL).
  82. </para>
  83. </listitem>
  84. <listitem>
  85. <para>
  86. 'location' : l'URL à requêter (requis pour le mode non WSDL, inusité
  87. en mode WSDL).
  88. </para>
  89. </listitem>
  90. <listitem>
  91. <para>
  92. 'style' : style de requête (inusité en mode WSDL):
  93. <constant>SOAP_RPC</constant> ou <constant>SOAP_DOCUMENT</constant>.
  94. </para>
  95. </listitem>
  96. <listitem>
  97. <para>
  98. 'use' : méthode d'encodage des messages (inusité en mode WSDL):
  99. <constant>SOAP_ENCODED</constant> ou <constant>SOAP_LITERAL</constant>.
  100. </para>
  101. </listitem>
  102. <listitem>
  103. <para>
  104. 'login' et 'password' : login et password pour l'authentification
  105. <acronym>HTTP</acronym>.
  106. </para>
  107. </listitem>
  108. <listitem>
  109. <para>
  110. 'proxy_host', 'proxy_port', 'proxy_login', et 'proxy_password' :
  111. utilisés pour une connexion <acronym>HTTP</acronym> via un proxy.
  112. </para>
  113. </listitem>
  114. <listitem>
  115. <para>
  116. 'local_cert' et 'passphrase' : options d'authentification
  117. <acronym>HTTPS</acronym>.
  118. </para>
  119. </listitem>
  120. <listitem>
  121. <para>
  122. 'compression' : options de compression ; c'est une combinaison entre
  123. <constant>SOAP_COMPRESSION_ACCEPT</constant>, <constant>SOAP_COMPRESSION_GZIP</constant> et
  124. <constant>SOAP_COMPRESSION_DEFLATE</constant>, qui peuvent être utilisées de cette
  125. manière : <programlisting language="php"><![CDATA[
  126. // Accepte une response compressée
  127. $client = new Zend_Soap_Client("some.wsdl",
  128. array('compression' => SOAP_COMPRESSION_ACCEPT));
  129. ...
  130. // Compresse les requêtes avec gzip et un taux de 5
  131. $client = new Zend_Soap_Client("some.wsdl",
  132. array('compression' =>
  133. SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 5));
  134. ...
  135. // Compresse les requêtes en utilisant deflate
  136. $client = new Zend_Soap_Client("some.wsdl",
  137. array('compression' =>
  138. SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_DEFLATE));
  139. ]]></programlisting></para>
  140. </listitem>
  141. </itemizedlist>
  142. </para>
  143. </sect2>
  144. <sect2 id="zend.soap.client.calls">
  145. <title>Effectuer des requêtes SOAP</title>
  146. <para>
  147. Lorsqu'un objet <classname>Zend_Soap_Client</classname> est crée, nous sommes
  148. prêts à créer des requêtes <acronym>SOAP</acronym>.
  149. </para>
  150. <para>
  151. Chaque méthode du service Web est liée à une méthode virtuelle de l'objet
  152. <classname>Zend_Soap_Client</classname>, qui s'utilise de manière tout à fait classique
  153. comme <acronym>PHP</acronym> le définit.
  154. </para>
  155. <para>
  156. Voici un exemple : <programlisting language="php"><![CDATA[
  157. ...
  158. //****************************************************************
  159. // Code du serveur
  160. //****************************************************************
  161. // class MyClass {
  162. // /**
  163. // * Cette méthode utilise ...
  164. // *
  165. // * @param integer $inputParam
  166. // * @return string
  167. // */
  168. // public function method1($inputParam) {
  169. // ...
  170. // }
  171. //
  172. // /**
  173. // * Cette méthode utilise ...
  174. // *
  175. // * @param integer $inputParam1
  176. // * @param string $inputParam2
  177. // * @return float
  178. // */
  179. // public function method2($inputParam1, $inputParam2) {
  180. // ...
  181. // }
  182. //
  183. // ...
  184. // }
  185. // ...
  186. // $server = new Zend_Soap_Server(null, $options);
  187. // $server->setClass('MyClass');
  188. // ...
  189. // $server->handle();
  190. //
  191. //****************************************************************
  192. // Fin du code du serveur
  193. //****************************************************************
  194. $client = new Zend_Soap_Client("MyService.wsdl");
  195. ...
  196. // $result1 est une chaine
  197. $result1 = $client->method1(10);
  198. ...
  199. // $result2 est un flottant
  200. $result2 = $client->method2(22, 'some string');
  201. ]]></programlisting></para>
  202. </sect2>
  203. </sect1>