Zend_Soap_Client.xml 6.8 KB

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