Zend_Soap_Client.xml 6.9 KB

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