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