|
|
@@ -8,9 +8,9 @@
|
|
|
<title>Introduction</title>
|
|
|
|
|
|
<para>
|
|
|
- Zend Framework possède la capacité de consommer des services distants <acronym>XML</acronym>-RPC, via
|
|
|
+ Zend Framework possède la capacité de consommer des services distants XML-RPC, via
|
|
|
la classe <classname>Zend_XmlRpc_Client</classname>. Ses caractéristiques principales
|
|
|
- sont la conversion automatique des types entre <acronym>PHP</acronym> et <acronym>XML</acronym>-RPC, un objet proxy de
|
|
|
+ sont la conversion automatique des types entre <acronym>PHP</acronym> et XML-RPC, un objet proxy de
|
|
|
serveur, et des possibilités d'introspection du serveur.
|
|
|
</para>
|
|
|
</sect2>
|
|
|
@@ -20,13 +20,13 @@
|
|
|
|
|
|
<para>
|
|
|
Le constructeur de <classname>Zend_XmlRpc_Client</classname> reçoit en premier
|
|
|
- paramètre l'URL du serveur <acronym>XML</acronym>-RPC distant. L'instance retournée pourra alors être
|
|
|
+ paramètre l'URL du serveur XML-RPC distant. L'instance retournée pourra alors être
|
|
|
utilisée pour appeler n'importe quelle méthode distante.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
Pour appeler une méthode distante, utilisez la méthode <methodname>call()</methodname> de
|
|
|
- votre instance. Le code suivant montre un exemple avec le serveur <acronym>XML</acronym>-RPC du site de
|
|
|
+ votre instance. Le code suivant montre un exemple avec le serveur XML-RPC du site de
|
|
|
Zend Framework. Vous pouvez l'utiliser pour tester ou explorer les possibilités des
|
|
|
composants <classname>Zend_XmlRpc</classname>.
|
|
|
</para>
|
|
|
@@ -44,7 +44,7 @@ echo $client->call('test.sayHello');
|
|
|
</example>
|
|
|
|
|
|
<para>
|
|
|
- Le type de la valeur <acronym>XML</acronym>-RPC retournée sera automatiquement casté en un type
|
|
|
+ Le type de la valeur XML-RPC retournée sera automatiquement casté en un type
|
|
|
compatible <acronym>PHP</acronym>. Dans l'exemple ci-dessus, une <code>string</code> <acronym>PHP</acronym> est retournée et
|
|
|
immédiatement utilisable.
|
|
|
</para>
|
|
|
@@ -77,7 +77,7 @@ $result = $client->call('test.sayHello', array($arg1, $arg2));
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- La méthode <methodname>call()</methodname> convertira automatiquement la réponse <acronym>XML</acronym>-RPC et
|
|
|
+ La méthode <methodname>call()</methodname> convertira automatiquement la réponse XML-RPC et
|
|
|
retournera un type <acronym>PHP</acronym> natif valide. Un objet
|
|
|
<classname>Zend_XmlRpc_Response</classname> pour la valeur de retour sera de même
|
|
|
disponible, via un appel à <methodname>getLastResponse()</methodname>.
|
|
|
@@ -91,7 +91,7 @@ $result = $client->call('test.sayHello', array($arg1, $arg2));
|
|
|
Certaines méthodes distantes requièrent des paramètres. Ceux-ci sont donnés sous
|
|
|
forme de tableau <acronym>PHP</acronym> à <methodname>call()</methodname>. Chaque paramètre est supposé être un type
|
|
|
<acronym>PHP</acronym> natif qui sera alors lui-même converti, ou alors un objet représentant un type
|
|
|
- <acronym>XML</acronym>-RPC (un objet parmi les <classname>Zend_XmlRpc_Value</classname>).
|
|
|
+ XML-RPC (un objet parmi les <classname>Zend_XmlRpc_Value</classname>).
|
|
|
</para>
|
|
|
|
|
|
<sect3 id="zend.xmlrpc.value.parameters.php-native">
|
|
|
@@ -102,7 +102,7 @@ $result = $client->call('test.sayHello', array($arg1, $arg2));
|
|
|
à savoir <code>string</code>, <code>integer</code>, <code>float</code>,
|
|
|
<code>boolean</code>, <code>array</code>, ou <code>object</code>. Dans ce cas,
|
|
|
chacun des types sera converti de manière automatique en son type compatible
|
|
|
- <acronym>XML</acronym>-RPC, suivant la table suivante :
|
|
|
+ XML-RPC, suivant la table suivante :
|
|
|
</para>
|
|
|
|
|
|
<table id="zend.xmlrpc.value.parameters.php-native.table-1">
|
|
|
@@ -159,11 +159,11 @@ $result = $client->call('test.sayHello', array($arg1, $arg2));
|
|
|
<title>Comment est casté un tableau vide ?</title>
|
|
|
|
|
|
<para>
|
|
|
- Fournir un tableau vide à une méthode <acronym>XML</acronym>-RPC est problématique, car il
|
|
|
+ Fournir un tableau vide à une méthode XML-RPC est problématique, car il
|
|
|
peut être représenté sous la forme soit d'un tableau, soit d'une structure
|
|
|
("struct"). <classname>Zend_XmlRpc_Client</classname> détecte ce genre de
|
|
|
conditions et fait une requête vers la méthode
|
|
|
- <code>system.methodSignature</code> du serveur pour déterminer le type <acronym>XML</acronym>-RPC
|
|
|
+ <code>system.methodSignature</code> du serveur pour déterminer le type XML-RPC
|
|
|
approprié vers le quel casté.
|
|
|
</para>
|
|
|
|
|
|
@@ -171,14 +171,14 @@ $result = $client->call('test.sayHello', array($arg1, $arg2));
|
|
|
Cependant, ceci peut mener malgré tout à des soucis. Premièrement, les
|
|
|
serveurs qui ne supportent <code>system.methodSignature</code> vont retourner
|
|
|
une requête de type échec, et <classname>Zend_XmlRpc_Client</classname>
|
|
|
- résultera en un cast de la valeur de type tableau <acronym>XML</acronym>-RPC ("array"). De plus,
|
|
|
+ résultera en un cast de la valeur de type tableau XML-RPC ("array"). De plus,
|
|
|
ceci sous-entend que tout appel avec des arguments de type tableau entraîneront
|
|
|
un appel additionnel au serveur distant.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
Pour désactiver entièrement la recherche, vous pouvez appeler la méthode
|
|
|
- <methodname>setSkipSystemLookup()</methodname> avant de réaliser votre appel <acronym>XML</acronym>-RPC
|
|
|
+ <methodname>setSkipSystemLookup()</methodname> avant de réaliser votre appel XML-RPC
|
|
|
:
|
|
|
</para>
|
|
|
|
|
|
@@ -196,7 +196,7 @@ $result = $client->call('foo.bar', array(array()));
|
|
|
<para>
|
|
|
Les paramètres peuvent aussi être des objets
|
|
|
<classname>Zend_XmlRpc_Value</classname> qui spécifient alors exactement un type
|
|
|
- <acronym>XML</acronym>-RPC. Les raisons principales d'utiliser un tel procédé sont : <itemizedlist>
|
|
|
+ XML-RPC. Les raisons principales d'utiliser un tel procédé sont : <itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
Lorsque vous voulez être certain du type de paramètre (la méthode
|
|
|
@@ -216,10 +216,10 @@ $result = $client->call('foo.bar', array(array()));
|
|
|
<listitem>
|
|
|
<para>
|
|
|
Lorsque la conversion de types (cast) peut échouer (vous voulez
|
|
|
- passer une valeur <acronym>XML</acronym>-RPC vide comme paramètre. Mais les valeurs vides
|
|
|
+ passer une valeur XML-RPC vide comme paramètre. Mais les valeurs vides
|
|
|
en <acronym>PHP</acronym> sont représentés sous forme de tableaux vides, or si vous passez
|
|
|
un tableau vide à votre méthode <code>call</code>, il va être converti
|
|
|
- en un tableau <acronym>XML</acronym>-RPC, comme ce n'est pas un tableau associatif).
|
|
|
+ en un tableau XML-RPC, comme ce n'est pas un tableau associatif).
|
|
|
</para>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
@@ -319,8 +319,8 @@ $result = $client->call('foo.bar', array(array()));
|
|
|
<title>Objet proxy du serveur</title>
|
|
|
|
|
|
<para>
|
|
|
- Un autre moyen d'appeler des méthodes avec un client <acronym>XML</acronym>-RPC est d'utiliser le
|
|
|
- proxy du serveur. C'est un objet <acronym>PHP</acronym> qui proxie un espace de nom <acronym>XML</acronym>-RPC, en
|
|
|
+ Un autre moyen d'appeler des méthodes avec un client XML-RPC est d'utiliser le
|
|
|
+ proxy du serveur. C'est un objet <acronym>PHP</acronym> qui proxie un espace de nom XML-RPC, en
|
|
|
fonctionnant autant que possible comme les objets <acronym>PHP</acronym>.
|
|
|
</para>
|
|
|
|
|
|
@@ -328,7 +328,7 @@ $result = $client->call('foo.bar', array(array()));
|
|
|
Pour instancier un proxy serveur, appelez <methodname>getProxy()</methodname> de
|
|
|
<classname>Zend_XmlRpc_Client</classname>. Elle retourne un objet
|
|
|
<classname>Zend_XmlRpc_Client_ServerProxy</classname>. Tout appel de méthode sur l'objet
|
|
|
- proxy sera proxié vers le serveur <acronym>XML</acronym>-RPC, et les paramètres seront utilisés comme pour
|
|
|
+ proxy sera proxié vers le serveur XML-RPC, et les paramètres seront utilisés comme pour
|
|
|
une méthode <acronym>PHP</acronym> banale.
|
|
|
</para>
|
|
|
|
|
|
@@ -378,7 +378,7 @@ $hello = $test->sayHello(1, 2);
|
|
|
<title>Gestion des erreurs</title>
|
|
|
|
|
|
<para>
|
|
|
- Deux types d'erreurs peuvent être distingués : erreurs <acronym>HTTP</acronym>, ou erreurs <acronym>XML</acronym>-RPC.
|
|
|
+ Deux types d'erreurs peuvent être distingués : erreurs <acronym>HTTP</acronym>, ou erreurs XML-RPC.
|
|
|
L'objet <classname>Zend_XmlRpc_Client</classname> reconnaît ces erreurs et fournit les
|
|
|
moyens de les repérer et de les gérer.
|
|
|
</para>
|
|
|
@@ -412,7 +412,7 @@ try {
|
|
|
</example>
|
|
|
|
|
|
<para>
|
|
|
- Quelque soit l'utilisation du client <acronym>XML</acronym>-RPC, une
|
|
|
+ Quelque soit l'utilisation du client XML-RPC, une
|
|
|
<classname>Zend_XmlRpc_Client_HttpException</classname> sera systématiquement levée
|
|
|
lorsqu'une erreur <acronym>HTTP</acronym> de quelque type que ce soit est rencontrée.
|
|
|
</para>
|
|
|
@@ -422,19 +422,19 @@ try {
|
|
|
<title>Erreurs XML-RPC (Faults)</title>
|
|
|
|
|
|
<para>
|
|
|
- Une erreur <acronym>XML</acronym>-RPC peut être assimilée à une exception en <acronym>PHP</acronym>. C'est un type
|
|
|
- spécial retourné par une des méthodes du client <acronym>XML</acronym>-RPC, et ce type contient un
|
|
|
- message, et un code d'erreur. Les erreurs <acronym>XML</acronym>-RPC seront gérées différemment en
|
|
|
+ Une erreur XML-RPC peut être assimilée à une exception en <acronym>PHP</acronym>. C'est un type
|
|
|
+ spécial retourné par une des méthodes du client XML-RPC, et ce type contient un
|
|
|
+ message, et un code d'erreur. Les erreurs XML-RPC seront gérées différemment en
|
|
|
fonction du contexte d'utilisation de l'objet
|
|
|
<classname>Zend_XmlRpc_Client</classname>.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
Lors de l'utilisation de la méthode <methodname>call()</methodname>, ou de l'objet proxy
|
|
|
- serveur, une erreur <acronym>XML</acronym>-RPC aura pour effet de lancer une
|
|
|
+ serveur, une erreur XML-RPC aura pour effet de lancer une
|
|
|
<classname>Zend_XmlRpc_Client_FaultException</classname>. Le code et le message de
|
|
|
l'exception seront rendus dans leurs valeurs respectives de la réponse
|
|
|
- <acronym>XML</acronym>-RPC.
|
|
|
+ XML-RPC.
|
|
|
</para>
|
|
|
|
|
|
<example id="zend.xmlrpc.client.error-handling.faults.example-1">
|
|
|
@@ -466,7 +466,7 @@ try {
|
|
|
|
|
|
<para>
|
|
|
Lors de l'utilisation de la méthode <methodname>doRequest()</methodname>, aucune exception
|
|
|
- ne sera levée si une erreur <acronym>XML</acronym>-RPC survient. Simplement, l'objet
|
|
|
+ ne sera levée si une erreur XML-RPC survient. Simplement, l'objet
|
|
|
<classname>Zend_XmlRpc_Response</classname> retourné contiendra l'erreur.
|
|
|
Vérifiez-en l'état avec <methodname>isFault()</methodname>.
|
|
|
</para>
|
|
|
@@ -477,7 +477,7 @@ try {
|
|
|
<title>Introspection du serveur</title>
|
|
|
|
|
|
<para>
|
|
|
- Certains serveurs <acronym>XML</acronym>-RPC supportent l'introspection de leurs méthodes au travers
|
|
|
+ Certains serveurs XML-RPC supportent l'introspection de leurs méthodes au travers
|
|
|
de l'espace de noms <code>system.</code> <classname>Zend_XmlRpc_Client</classname>
|
|
|
fournit un support d'un tel procédé.
|
|
|
</para>
|
|
|
@@ -520,7 +520,7 @@ $client->doRequest($request);
|
|
|
</example>
|
|
|
|
|
|
<para>
|
|
|
- Lorsqu'une méthode <acronym>XML</acronym>-RPC est appelée, quel qu'en soit le moyen,
|
|
|
+ Lorsqu'une méthode XML-RPC est appelée, quel qu'en soit le moyen,
|
|
|
(<methodname>call()</methodname>, <methodname>doRequest()</methodname> ou proxy serveur), le dernier objet de
|
|
|
requête, et son homologue de réponse, seront toujours disponibles, au travers des appels
|
|
|
à <methodname>getLastRequest()</methodname> et <methodname>getLastResponse()</methodname>.
|