| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- <!-- EN-Revision: 13732 -->
- <sect1 id="zend.soap.client">
- <title>Zend_Soap_Client</title>
- <para><classname>Zend_Soap_Client</classname> est une classe destinée à simplifier l'interrogation de services SOAP.</para>
- <para>Cette classe peut être utilisée en mode WSDL ou non WSDL.</para>
- <para>Lorsque Zend_Soap_Client fonctionne en mode WSDL, il utilise le document WSDL pour définir les options de la
- couche de transport des données.</para>
- <para>Le fichier WSDL est en général fournit par le service auquel vous souhaitez accéder. Si la description WSDL
- n'est pas disponible, vous pouvez vouloir utiliser <classname>Zend_Soap_Client</classname> en mode non WSDL . Dans ce cas,
- toutes les options du protocole devront être définies explicitement dans la classe
- <classname>Zend_Soap_Client</classname>.</para>
- <sect2 id="zend.soap.client.constructor">
- <title>Constructeur de <classname>Zend_Soap_Client</classname>.</title>
- <para>Le constructeur de <classname>Zend_Soap_Client</classname> accepte 2 paramètres: <itemizedlist>
- <listitem>
- <para><code>$wsdl</code> : l'URI du fichier WSDL.</para>
- </listitem>
- <listitem>
- <para><code>$options</code> : options de création.</para>
- </listitem>
- </itemizedlist> Ces deux paramètres peuvent être insérés après construction, ceci grâce aux méthodes
- <code>setWsdl($wsdl)</code> et <code>setOptions($options)</code>.</para>
- <note>
- <title>Important!</title>
- <para>Si vous utilisez Zend_Soap_Client en mode non WSDL, vous <emphasis>devez</emphasis> fournir les
- options 'location' et 'uri'.</para>
- </note>
- <para>Les options suivantes sont reconnues: <itemizedlist>
- <listitem>
- <para>'soap_version' ('soapVersion') : version du protocole SOAP à utiliser (SOAP_1_1 ou
- SOAP_1_2).</para>
- </listitem>
- <listitem>
- <para>'classmap' ('classMap') : doit être utilisé pour faire correspondre des types WSDL à des
- classes PHP.</para>
- <para>Cette option doit être un tableau avec comme clés les types WSDL et comme valeurs les noms des
- classes PHP.</para>
- </listitem>
- <listitem>
- <para>'encoding' : encodage interne des caractères (l'encodage externe est toujours UTF-8).</para>
- </listitem>
- <listitem>
- <para>'wsdl' : qui est équivalent à un appel à <code>setWsdl($wsdlValue)</code>.</para>
- <para>Changer cette option peut faire basculer Zend_Soap_Client en mode WSDL ou non WSDL.</para>
- </listitem>
- <listitem>
- <para>'uri' : cible du service SOAP (requis pour le mode non WSDL, inusité en mode WSDL).</para>
- </listitem>
- <listitem>
- <para>'location' : l'URL à requêter (requis pour le mode non WSDL, inusité en mode WSDL).</para>
- </listitem>
- <listitem>
- <para>'style' : style de requête (inusité en mode WSDL): <code>SOAP_RPC</code> ou
- <code>SOAP_DOCUMENT</code>.</para>
- </listitem>
- <listitem>
- <para>'use' : méthode d'encodage des messages (inusité en mode WSDL): <code>SOAP_ENCODED</code> ou
- <code>SOAP_LITERAL</code>.</para>
- </listitem>
- <listitem>
- <para>'login' et 'password' : login et password pour l'authentification HTTP.</para>
- </listitem>
- <listitem>
- <para>'proxy_host', 'proxy_port', 'proxy_login', et 'proxy_password' : utilisés pour une connexion
- HTTP via un proxy.</para>
- </listitem>
- <listitem>
- <para>'local_cert' et 'passphrase' : options d'authentification HTTPS.</para>
- </listitem>
- <listitem>
- <para>'compression' : options de compression ; c'est une combinaison entre
- <code>SOAP_COMPRESSION_ACCEPT</code>, <code>SOAP_COMPRESSION_GZIP</code> et
- <code>SOAP_COMPRESSION_DEFLATE</code>, qui peuvent être utilisées de cette manière : <programlisting
- role="php"><![CDATA[
- // Accepte une response compressée
- $client = new Zend_Soap_Client("some.wsdl",
- array('compression' => SOAP_COMPRESSION_ACCEPT));
- ...
- // Compresse les requêtes avec gzip et un taux de 5
- $client = new Zend_Soap_Client("some.wsdl",
- array('compression' =>
- SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 5));
- ...
- // Compresse les requêtes en utilisant deflate
- $client = new Zend_Soap_Client("some.wsdl",
- array('compression' =>
- SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_DEFLATE));
- ]]></programlisting></para>
- </listitem>
- </itemizedlist></para>
- </sect2>
- <sect2 id="zend.soap.client.calls">
- <title>Effectuer des requêtes SOAP.</title>
- <para>Lorsqu'un objet <classname>Zend_Soap_Client</classname> est crée, nous sommes prêts à créer des requêtes
- SOAP.</para>
- <para>Chaque méthode du service Web est liée à une méthode virtuelle de l'objet <classname>Zend_Soap_Client</classname>,
- qui s'utilise de manière tout à fait classique comme PHP le définit.</para>
- <para>Voici un exemple : <programlisting role="php"><![CDATA[
- ...
- //****************************************************************
- // Code du serveur
- //****************************************************************
- // class MyClass {
- // /**
- // * Cette méthode utilise ...
- // *
- // * @param integer $inputParam
- // * @return string
- // */
- // public function method1($inputParam) {
- // ...
- // }
- //
- // /**
- // * Cette méthode utilise ...
- // *
- // * @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();
- //
- //****************************************************************
- // Fin du code du serveur
- //****************************************************************
- $client = new Zend_Soap_Client("MyService.wsdl");
- ...
- // $result1 est une chaine
- $result1 = $client->method1(10);
- ...
- // $result2 est un flottant
- $result2 = $client->method2(22, 'some string');
- ]]></programlisting></para>
- </sect2>
- </sect1>
|