From da41df37e726911c9a12f97c6861ff54a56e1358 Mon Sep 17 00:00:00 2001 From: lacatoire Date: Thu, 27 Aug 2026 17:50:28 +0200 Subject: [PATCH] [Sync-En] yar: sync the Yar extension documentation with EN, incl. __info and response id validation --- reference/yar/book.xml | 29 +- reference/yar/configure.xml | 10 +- reference/yar/constants.xml | 474 ++++++++++++------ reference/yar/examples.xml | 69 ++- reference/yar/ini.xml | 154 ++++-- reference/yar/setup.xml | 103 +++- reference/yar/yar-client-exception.xml | 84 +--- .../yar/yar-client-packager-exception.xml | 82 +-- .../yar/yar-client-protocol-exception.xml | 92 ++-- .../yar/yar-client-transport-exception.xml | 82 +-- reference/yar/yar-client.xml | 59 ++- reference/yar/yar-concurrent-client.xml | 78 +-- reference/yar/yar-server-exception.xml | 89 ++-- reference/yar/yar-server-output-exception.xml | 82 +-- .../yar/yar-server-packager-exception.xml | 82 +-- .../yar/yar-server-protocol-exception.xml | 82 +-- .../yar/yar-server-request-exception.xml | 82 +-- reference/yar/yar-server.xml | 38 +- reference/yar/yar_client/call.xml | 78 ++- reference/yar/yar_client/construct.xml | 71 ++- reference/yar/yar_client/getopt.xml | 100 ++++ reference/yar/yar_client/setopt.xml | 128 +++-- .../yar/yar_client_exception/gettype.xml | 42 +- reference/yar/yar_concurrent_client/call.xml | 103 ++-- reference/yar/yar_concurrent_client/loop.xml | 108 ++-- reference/yar/yar_concurrent_client/reset.xml | 46 +- reference/yar/yar_server/construct.xml | 59 +-- reference/yar/yar_server/handle.xml | 166 ++++-- .../yar/yar_server_exception/gettype.xml | 42 +- 29 files changed, 1488 insertions(+), 1226 deletions(-) create mode 100644 reference/yar/yar_client/getopt.xml diff --git a/reference/yar/book.xml b/reference/yar/book.xml index de665ba615..5ee752e296 100644 --- a/reference/yar/book.xml +++ b/reference/yar/book.xml @@ -1,5 +1,5 @@ - + @@ -8,11 +8,25 @@ &reftitle.intro; - - Yar est un framework RPC qui a pour but de fournir une façon simple - de communication entre les applications PHP. Il apporte la possibilité - d'appeler plusieurs services distants simultanément. - + + Yar (Yet another RPC framework) est un framework RPC léger et concurrent + qui a pour but de fournir une façon simple et aisée de communiquer entre + les applications PHP. Il peut également émettre plusieurs appels vers des + services distants simultanément. + + + Yar est une extension PHP native plutôt qu'une bibliothèque écrite en PHP. + Elle utilise un protocole binaire compact au dessus de HTTP, HTTPS ou TCP + et est fournie avec trois empaqueteurs intégrés (php, + json et, lorsqu'elle est compilée avec + , + msgpack), si bien qu'aucun paquet supplémentaire ni + processus mandataire n'est nécessaire. + + + Le protocole est indépendant du langage : des implémentations compatibles + existent pour C, Java et Lua. + &reference.yar.setup; @@ -22,13 +36,12 @@ &reference.yar.yar-client; &reference.yar.yar-concurrent-client; &reference.yar.yar-server-exception; - &reference.yar.yar-client-exception; - &reference.yar.yar-server-output-exception; &reference.yar.yar-server-packager-exception; &reference.yar.yar-server-protocol-exception; &reference.yar.yar-server-request-exception; + &reference.yar.yar-client-exception; &reference.yar.yar-client-packager-exception; &reference.yar.yar-client-protocol-exception; &reference.yar.yar-client-transport-exception; diff --git a/reference/yar/configure.xml b/reference/yar/configure.xml index 6634ec1185..f2c4a890e1 100644 --- a/reference/yar/configure.xml +++ b/reference/yar/configure.xml @@ -1,16 +1,14 @@ - - - +
&reftitle.install; - + &pecl.info; &url.pecl.package;yar - - + +
diff --git a/reference/yar/constants.xml b/reference/yar/constants.xml index 2065356939..9fc88d1fdc 100644 --- a/reference/yar/constants.xml +++ b/reference/yar/constants.xml @@ -1,166 +1,324 @@ - - - + &reftitle.constants; &extension.constants; - - - - - YAR_VERSION - (string) - - - - - - - - - YAR_CLIENT_PROTOCOL_HTTP - (int) - - - - - - - - - YAR_OPT_PACKAGER - (int) - - - - - - - - - YAR_OPT_TIMEOUT - (int) - - - - - - - - - YAR_OPT_CONNECT_TIMEOUT - (int) - - - - - - - - - YAR_OPT_HEADER - (array) - - - - Depuis 2.0.4 - - - - - - YAR_PACKAGER_PHP - (string) - - - - - - - - - YAR_PACKAGER_JSON - (string) - - - - - - - - - YAR_ERR_OKEY - (int) - - - - - - - - - YAR_ERR_OUTPUT - (int) - - - - - - - - - YAR_ERR_TRANSPORT - (int) - - - - - - - - - YAR_ERR_REQUEST - (int) - - - - - - - - - YAR_ERR_PROTOCOL - (int) - - - - - - - - - YAR_ERR_PACKAGER - (int) - - - - - - - - - YAR_ERR_EXCEPTION - (int) - - - - - - - - + + + + YAR_VERSION + (string) + + + + La version de l'extension Yar, par exemple + "2.4.0". + + + + + + YAR_HAS_MSGPACK + (int) + + + + 1 lorsque Yar a été compilé avec + , sinon + 0. + + + + + + YAR_CLIENT_PROTOCOL_HTTP + (int) + + + + Identifie le protocole HTTP, exposé via la propriété en lecture + seule _protocol de + Yar_Client. + + + + + + YAR_CLIENT_PROTOCOL_TCP + (int) + + + + Identifie le protocole TCP, exposé via la propriété en lecture + seule _protocol de + Yar_Client. + + + + + + YAR_CLIENT_PROTOCOL_UNIX + (int) + + + + Identifie le protocole des sockets Unix, exposé via la propriété + en lecture seule _protocol de + Yar_Client. + + + + + + YAR_OPT_PACKAGER + (int) + + + + Option de client permettant de surcharger la directive + yar.packager + pour un seul client. La valeur doit être l'une de + php, json ou + msgpack. + + + + + + YAR_OPT_PERSISTENT + (int) + + + + Option de client permettant d'activer les connexions + persistantes. Lorsqu'elle est définie à une valeur vraie, le + keep-alive HTTP est utilisé afin que les appels répétés au même + serveur réutilisent la connexion pendant le reste du cycle de vie + de la requête PHP. + + + + + + YAR_OPT_TIMEOUT + (int) + + + + Option de client permettant de surcharger la directive + yar.timeout, en + millisecondes. + + + + + + YAR_OPT_CONNECT_TIMEOUT + (int) + + + + Option de client permettant de surcharger la directive + yar.connect_timeout, + en millisecondes. + + + + + + YAR_OPT_HEADER + (int) + + + + Option de client permettant d'ajouter des en-têtes HTTP + personnalisés. La valeur doit être un tableau de chaînes de + caractères de la forme + "X-Custom: value". Effective uniquement avec + les protocoles HTTP et HTTPS. Disponible à partir de Yar 2.0.4. + + + + + + YAR_OPT_RESOLVE + (int) + + + + Option de client permettant de surcharger la résolution de nom + d'hôte pour les appels HTTP. La valeur doit être un tableau de + chaînes de caractères au format + HOST:PORT:ADDRESS, suivant la syntaxe de + CURLOPT_RESOLVE de curl. Nécessite libcurl + >= 7.21.3. Disponible à partir de Yar 2.1.0. + + + + + + YAR_OPT_PROXY + (int) + + + + Option de client permettant de faire transiter les appels HTTP par + un proxy HTTP. La valeur doit être une chaîne de caractères telle + que 127.0.0.1:8888. + Disponible à partir de Yar 2.2.0. + + + + + + YAR_OPT_PROVIDER + (int) + + + + Option de client portant l'identité du fournisseur envoyée avec + chaque requête. La valeur doit être une chaîne de caractères d'au + plus 32 octets, qui est transmise à la méthode magique + __auth côté serveur. + Disponible à partir de Yar 2.3.0. + + + + + + YAR_OPT_TOKEN + (int) + + + + Option de client portant le jeton d'authentification envoyé avec + chaque requête. La valeur doit être une chaîne de caractères d'au + plus 32 octets, qui est transmise à la méthode magique + __auth côté serveur. + Disponible à partir de Yar 2.3.0. + + + + + + YAR_PACKAGER_PHP + (string) + + + + L'identifiant de l'empaqueteur php, + "PHP". + + + + + + YAR_PACKAGER_JSON + (string) + + + + L'identifiant de l'empaqueteur json, + "JSON". + + + + + + YAR_PACKAGER_MSGPACK + (string) + + + + L'identifiant de l'empaqueteur msgpack, + "MSGPACK". + + + + + + YAR_ERR_OKEY + (int) + + + + Aucune erreur ; la requête a été traitée avec succès. + + + + + + YAR_ERR_PACKAGER + (int) + + + + Une erreur d'empaquetage, par exemple un corps qui n'a pas pu être + désempaqueté. + + + + + + YAR_ERR_PROTOCOL + (int) + + + + Une erreur de protocole, par exemple un en-tête Yar malformé. + + + + + + YAR_ERR_REQUEST + (int) + + + + Une erreur de requête, par exemple un appel à une méthode non + définie ou non publique. + + + + + + YAR_ERR_OUTPUT + (int) + + + + Une erreur de sortie, par exemple le serveur n'a pas pu démarrer + son tampon de sortie. + + + + + + YAR_ERR_TRANSPORT + (int) + + + + Une erreur de transport, par exemple un échec de connexion ou un + dépassement de délai. + + + + + + YAR_ERR_EXCEPTION + (int) + + + + Le service distant a levé une exception lors du traitement de la + requête. + + + + + &reftitle.examples; @@ -9,12 +9,12 @@ handle(); Accès au serveur depuis un navigateur (requête GET) + + Lorsqu'une requête GET est émise vers l'URI du service, Yar affiche + une page d'information listant chaque méthode publique de l'objet + exécuteur ainsi que son commentaire de documentation. Ce + comportement est contrôlé par la directive + yar.expose_info. + &example.outputs.similar; Information du serveur Yar @@ -69,28 +76,27 @@ $server->handle(); add(1, 2)); -/* Appel via un appel */ +/* appel via call() */ var_dump($client->call("add", array(3, 2))); - -/* la méthode _add ne peut être appelée */ +/* _add ne peut pas être appelée : elle n'est pas publique */ var_dump($client->_add(1, 2)); ?> ]]> &example.outputs.similar; - + - + @@ -99,27 +105,50 @@ PHP Fatal error: Uncaught exception 'Yar_Server_Exception' with message 'call t ]]> &example.outputs.similar; - + + + + + Exemple de client Yar TCP + + Outre HTTP, Yar_Client peut dialoguer avec + des serveurs compatibles Yar via TCP ou des sockets Unix, par + exemple un service implémenté avec le framework Yar en C. Le serveur + distant doit implémenter le même protocole binaire Yar. + + +add(1, 2)); +?> +]]> + diff --git a/reference/yar/ini.xml b/reference/yar/ini.xml index 8d05b26797..05deadd399 100644 --- a/reference/yar/ini.xml +++ b/reference/yar/ini.xml @@ -1,7 +1,5 @@ - - - +
&reftitle.runtime; @@ -20,9 +18,15 @@ - yar.packager - php - INI_SYSTEM + yar.connect_timeout + 1000 + INI_ALL + + + + yar.content_type + application/octet-stream + INI_ALL @@ -32,21 +36,27 @@ - yar.connect_timeout - 1000 - INI_ALL + yar.expose_info + On + INI_PERDIR - yar.timeout - 5000 + yar.packager + php + INI_PERDIR + + + + yar.ssl_verify + Off INI_ALL - yar.expose_info - On - INI_SYSTEM + yar.timeout + 5000 + INI_ALL @@ -58,61 +68,121 @@ - + - yar.packager + yar.connect_timeout + int + + + + Délai d'attente maximal de connexion, en millisecondes, pour les + appels HTTP émis par Yar_Client et + Yar_Concurrent_Client. + + + + Cette valeur est interprétée en millisecondes. Antérieur à + Yar 1.2.1, elle était exprimée en secondes (la valeur par défaut + était 1). + + + + + + + yar.content_type string - - peut être php, json, et msgpack (nécessite une compilation avec le support - msgpack) - + + La valeur de l'en-tête de réponse Content-Type + envoyé par Yar_Server. Yar utilise un + protocole binaire, la valeur par défaut est donc + application/octet-stream. + yar.debug - string + bool - - - + + Active le mode de débogage. Lorsqu'il est actif, Yar émet des + messages E_WARNING contenant des détails au + niveau du protocole pour chaque requête et chaque réponse, préfixés + par [Debug Yar_Server] ou + [Debug Yar_Client] et un horodatage. + - + - yar.connect_timeout - int + yar.expose_info + bool - - délai d'attente maximal en ms - + + Indique si Yar_Server::handle affiche la + page d'informations du service pour les requêtes autres que POST + (généralement GET). Lorsque cette directive est désactivée, de + telles requêtes lèvent une + Yar_Server_Exception à la place. + - + - yar.timeout - int + yar.packager + string - - délai d'attente maximal en ms - + + L'empaqueteur utilisé par défaut pour sérialiser le corps des + requêtes et des réponses. Les valeurs valides sont + php (sérialisation PHP), json + et msgpack (uniquement lorsque Yar a été compilée + avec ). + + + Lorsque Yar est compilée avec le support de msgpack, la valeur par + défaut devient msgpack. + + + Cette valeur peut être surchargée pour chaque client avec l'option + YAR_OPT_PACKAGER. + - + - yar.expose_info + yar.ssl_verify bool - - si l'on doit ou non exposer les informations du service - (lors de l'accès au serveur via GET) - + + Indique s'il faut vérifier le certificat TLS des serveurs HTTPS. + Lorsque cette directive est active, le transport curl positionne + CURLOPT_SSL_VERIFYPEER et + CURLOPT_SSL_VERIFYHOST, et les requêtes vers + des serveurs présentant un certificat invalide échouent. Désactivée + par défaut pour des raisons de compatibilité ascendante. Disponible + à partir de Yar 2.4.0. + + + + + + yar.timeout + int + + + + Délai d'attente maximal, en millisecondes, pour les appels RPC émis + par Yar_Client et + Yar_Concurrent_Client. + diff --git a/reference/yar/setup.xml b/reference/yar/setup.xml index a6ef4c0cb6..3ec43185b7 100644 --- a/reference/yar/setup.xml +++ b/reference/yar/setup.xml @@ -1,36 +1,113 @@ - - + &reftitle.setup;
&reftitle.required; - - Pour utiliser msgpack comme packager, il faut compiler - Yar soi-même avec l'option de configuration ./configure --enable-msgpack - + + La bibliothèque cURL est nécessaire pour les transports HTTP et HTTPS. + Le transport TCP est implémenté à l'aide de sockets simples et ne + nécessite aucune bibliothèque supplémentaire. + + + L'extension JSON est nécessaire ; elle + est fournie avec PHP et toujours disponible à partir de PHP 8.0.0. + + + Pour utiliser l'empaqueteur msgpack, l'extension + msgpack doit être + installée et Yar doit être compilée avec l'option de configuration + . +
+
&reftitle.install; - + &pecl.moved; - - + + &pecl.info; &url.pecl.package;yar. + + + &pecl.windows.download.avail; + + + Le code source est hébergé sur + GitHub. Pour compiler + l'extension à partir des sources : + + + + + + Les options de configure suivantes sont disponibles : + + + + + + + + Emplacement de l'installation de cURL, s'il ne se trouve pas dans + les chemins d'inclusion par défaut. + + + + + + + + + + Active l'empaqueteur msgpack et fait de + l'extension msgpack une dépendance optionnelle. + Lorsque Yar est compilée avec cette option, la valeur par défaut de + yar.packager devient + msgpack. + + + + + + + + + + Utilise epoll de Linux au lieu de + select() pour le multiplexage des entrées/sorties, + disponible à partir de Yar 2.1.2. Cela peut améliorer les performances + de Yar_Concurrent_Client en cas de forte + concurrence. Cette option ne prend effet que sur Linux ; sur les + autres plateformes, elle est ignorée silencieusement. + + + +
- + + + &reference.yar.ini; +
&reftitle.resources; - - - + + Cette extension ne définit aucune ressource. +
diff --git a/reference/yar/yar-client-exception.xml b/reference/yar/yar-client-exception.xml index df38270ff6..70dd964206 100644 --- a/reference/yar/yar-client-exception.xml +++ b/reference/yar/yar-client-exception.xml @@ -1,9 +1,7 @@ - - - + - + La classe Yar_Client_Exception Yar_Client_Exception @@ -13,9 +11,12 @@
&reftitle.intro; - - - + + Classe de base des exceptions levées lorsqu'une requête échoue avant, + pendant ou après avoir atteint le service distant : une sous-classe est + levée selon l'endroit où l'échec s'est produit. Le code de l'exception + est l'une des constantes YAR_ERR_*. +
@@ -23,69 +24,30 @@ &reftitle.classsynopsis; - - Yar_Client_Exception + + + Yar_Client_Exception + - - - - Yar_Client_Exception - - - - extends - Exception - - - - &Properties; + + extends + Exception + + + &InheritedProperties; + - &Methods; - - - &InheritedMethods; - + + &InheritedMethods; + +
- - -
- &reftitle.properties; - - - message - - - - - - code - - - - - - file - - - - - - line - - - - - -
- - - &reference.yar.entities.yar-client-exception; diff --git a/reference/yar/yar-client-packager-exception.xml b/reference/yar/yar-client-packager-exception.xml index 0ac6a3526f..b41ff630e6 100644 --- a/reference/yar/yar-client-packager-exception.xml +++ b/reference/yar/yar-client-packager-exception.xml @@ -1,90 +1,46 @@ - + - + La classe Yar_Client_Packager_Exception Yar_Client_Packager_Exception -
&reftitle.intro; - - - + + Levée lorsque le corps de la réponse ne peut pas être décodé avec l'empaqueteur demandé (code d'exception YAR_ERR_PACKAGER). +
-
&reftitle.classsynopsis; - - - Yar_Client_Packager_Exception + + + Yar_Client_Packager_Exception + - - - - Yar_Client_Packager_Exception - - - - extends - Yar_Client_Exception - - - - &Properties; + + extends + Yar_Client_Exception + - - &InheritedMethods; - - + &InheritedProperties; + + &InheritedMethods; + + + -
- - -
- &reftitle.properties; - - - message - - - - - - code - - - - - - file - - - - - - line - - - - - -
- - -
-
+ - + La classe Yar_Client_Protocol_Exception Yar_Client_Protocol_Exception -
&reftitle.intro; - - - + + Levée lorsque la réponse du service RPC viole le protocole Yar, par exemple une adresse de protocole non supportée ou un en-tête de réponse malformé (code d'exception YAR_ERR_PROTOCOL). + + + À partir de Yar 2.4.0, cela inclut également une réponse dont + l'identifiant de transaction ne correspond pas à celui de la requête à + laquelle elle répond. Le client valide le champ i de + chaque réponse ; une réponse portant un identifiant de transaction + différent et non nul (par exemple une réponse mal routée par un + mandataire) est rejetée. Les réponses dont l'identifiant de transaction + est nul ou absent restent acceptées pour des raisons de compatibilité + ascendante avec les serveurs plus anciens. +
-
&reftitle.classsynopsis; - - - Yar_Client_Protocol_Exception + + + Yar_Client_Protocol_Exception + - - - - Yar_Client_Protocol_Exception - - - - extends - Yar_Client_Exception - - - - &Properties; + + extends + Yar_Client_Exception + - - &InheritedMethods; - - + &InheritedProperties; + + &InheritedMethods; + + + -
- - -
- &reftitle.properties; - - - message - - - - - - code - - - - - - file - - - - - - line - - - - - -
- - -
-
+ - + La classe Yar_Client_Transport_Exception Yar_Client_Transport_Exception -
&reftitle.intro; - - - + + Levée lorsque la connexion au service RPC échoue : connexion refusée, délai d'attente dépassé, ou réponse vide (code d'exception YAR_ERR_TRANSPORT). +
-
&reftitle.classsynopsis; - - - Yar_Client_Transport_Exception + + + Yar_Client_Transport_Exception + - - - - Yar_Client_Transport_Exception - - - - extends - Yar_Client_Exception - - - - &Properties; + + extends + Yar_Client_Exception + - - &InheritedMethods; - - + &InheritedProperties; + + &InheritedMethods; + + + -
- - -
- &reftitle.properties; - - - message - - - - - - code - - - - - - file - - - - - - line - - - - - -
- - -
-
- - + @@ -13,9 +11,12 @@
&reftitle.intro; - - - + + Le côté client du framework RPC Yar. Un client est lié à une unique + adresse de service ; l'appel de n'importe quelle méthode non définie + sur celui-ci déclenche un appel distant portant ce nom de méthode et + les arguments fournis. +
@@ -23,43 +24,41 @@ &reftitle.classsynopsis; - - Yar_Client + + + Yar_Client + - - - - Yar_Client - - - &Properties; protected + int _protocol protected + string _uri protected + arraynull _options protected + bool _running - &Methods; - + + -
&reftitle.properties; @@ -67,32 +66,46 @@ _protocol - + + En lecture seule. Le protocole déduit de l'adresse du service : + l'une des valeurs YAR_CLIENT_PROTOCOL_HTTP, + YAR_CLIENT_PROTOCOL_TCP ou + YAR_CLIENT_PROTOCOL_UNIX. + _uri - + + En lecture seule. L'adresse du service avec laquelle le client a + été créé. + _options - + + En lecture seule. Un &array; des options définies sur ce client, + indexé par les constantes YAR_OPT_*, ou &null; + si aucune option n'a été définie. + _running - + + En lecture seule. Indique si un appel émis par ce client est + actuellement en cours. +
- &reference.yar.entities.yar-client; diff --git a/reference/yar/yar-concurrent-client.xml b/reference/yar/yar-concurrent-client.xml index a459ea22ff..702716b163 100644 --- a/reference/yar/yar-concurrent-client.xml +++ b/reference/yar/yar-concurrent-client.xml @@ -1,7 +1,5 @@ - - - + @@ -13,9 +11,19 @@
&reftitle.intro; - - - + + Une classe utilitaire statique qui regroupe des appels RPC distants. + Les appels enregistrés avec + Yar_Concurrent_Client::call ne sont pas + envoyés immédiatement ; ils sont tous émis ensemble, en parallèle, par + Yar_Concurrent_Client::loop. + + + + Seuls les services HTTP(S) sont pris en charge pour les appels + concurrents. + +
@@ -23,66 +31,18 @@ &reftitle.classsynopsis; - - Yar_Concurrent_Client - - - - - Yar_Concurrent_Client - - - - &Properties; - - static - _callstack - - - static - _callback - - - static - _error_callback - + + + Yar_Concurrent_Client + - &Methods; - + - - -
- &reftitle.properties; - - - _callstack - - - - - - _callback - - - - - - _error_callback - - - - - -
- - - &reference.yar.entities.yar-concurrent-client; diff --git a/reference/yar/yar-server-exception.xml b/reference/yar/yar-server-exception.xml index acd94bad68..1aab58a888 100644 --- a/reference/yar/yar-server-exception.xml +++ b/reference/yar/yar-server-exception.xml @@ -1,9 +1,7 @@ - - - + - + La classe Yar_Server_Exception Yar_Server_Exception @@ -13,10 +11,13 @@
&reftitle.intro; - - Si le service lance des exceptions, une Yar_Server_Exception sera lancée - côté client. - + + Lancée côté client lorsque la requête RPC a échoué sur le serveur. + Si la méthode du service distant a elle-même lancé une exception, son message, + son code, son fichier, sa ligne et son nom de classe sont reportés, et + Yar_Server_Exception::getType retourne le + nom de classe de l'exception d'origine. +
@@ -24,79 +25,57 @@ &reftitle.classsynopsis; - - Yar_Server_Exception - - - - - Yar_Server_Exception - - - - extends - Exception - - - + + + Yar_Server_Exception + + + + extends + Exception + + &Properties; protected + string _type + "Yar_Exception_Server" - + &InheritedProperties; + + &Methods; - - - &InheritedMethods; - + + &InheritedMethods; + + -
&reftitle.properties; - - message - - - - - - code - - - - - - file - - - - - - line - - - - _type - + + Le nom de classe de l'exception lancée par le service distant, ou + "Yar_Exception_Server" si l'erreur n'a pas été + causée par une exception utilisateur. Lu via + Yar_Server_Exception::getType. +
- &reference.yar.entities.yar-server-exception; diff --git a/reference/yar/yar-server-output-exception.xml b/reference/yar/yar-server-output-exception.xml index 95a8f6624e..4cb7846647 100644 --- a/reference/yar/yar-server-output-exception.xml +++ b/reference/yar/yar-server-output-exception.xml @@ -1,90 +1,46 @@ - + - + La classe Yar_Server_Output_Exception Yar_Server_Output_Exception -
&reftitle.intro; - - - + + Lancée lorsque le serveur ne parvient pas à capturer les données de sortie de la méthode du service (code d'exception YAR_ERR_OUTPUT). +
-
&reftitle.classsynopsis; - - - Yar_Server_Output_Exception + + + Yar_Server_Output_Exception + - - - - Yar_Server_Output_Exception - - - - extends - Yar_Server_Exception - - - - &Properties; + + extends + Yar_Server_Exception + - - &InheritedMethods; - - + &InheritedProperties; + + &InheritedMethods; + + + -
- - -
- &reftitle.properties; - - - message - - - - - - code - - - - - - file - - - - - - line - - - - - -
- - -
-
+ - + La classe Yar_Server_Packager_Exception Yar_Server_Packager_Exception -
&reftitle.intro; - - - + + Lancée lorsque le corps de la requête ne peut pas être dépaqueté avec l'empaqueteur annoncé dans la requête (code d'exception YAR_ERR_PACKAGER). +
-
&reftitle.classsynopsis; - - - Yar_Server_Packager_Exception + + + Yar_Server_Packager_Exception + - - - - Yar_Server_Packager_Exception - - - - extends - Yar_Server_Exception - - - - &Properties; + + extends + Yar_Server_Exception + - - &InheritedMethods; - - + &InheritedProperties; + + &InheritedMethods; + + + -
- - -
- &reftitle.properties; - - - message - - - - - - code - - - - - - file - - - - - - line - - - - - -
- - -
-
+ - + La classe Yar_Server_Protocol_Exception Yar_Server_Protocol_Exception -
&reftitle.intro; - - - + + Lancée lorsque la requête entrante viole le protocole Yar, par exemple un en-tête de requête mal formé (code d'exception YAR_ERR_PROTOCOL). +
-
&reftitle.classsynopsis; - - - Yar_Server_Protocol_Exception + + + Yar_Server_Protocol_Exception + - - - - Yar_Server_Protocol_Exception - - - - extends - Yar_Server_Exception - - - - &Properties; + + extends + Yar_Server_Exception + - - &InheritedMethods; - - + &InheritedProperties; + + &InheritedMethods; + + + -
- - -
- &reftitle.properties; - - - message - - - - - - code - - - - - - file - - - - - - line - - - - - -
- - -
-
+ - + La classe Yar_Server_Request_Exception Yar_Server_Request_Exception -
&reftitle.intro; - - - + + Lancée lorsque la méthode distante demandée n'existe pas sur l'objet serveur, ou n'est pas publique (code d'exception YAR_ERR_REQUEST). +
-
&reftitle.classsynopsis; - - - Yar_Server_Request_Exception + + + Yar_Server_Request_Exception + - - - - Yar_Server_Request_Exception - - - - extends - Yar_Server_Exception - - - - &Properties; + + extends + Yar_Server_Exception + - - &InheritedMethods; - - + &InheritedProperties; + + &InheritedMethods; + + + -
- - -
- &reftitle.properties; - - - message - - - - - - code - - - - - - file - - - - - - line - - - - - -
- - -
-
- - + @@ -13,9 +11,11 @@
&reftitle.intro; - - - + + Encapsule un objet et expose toutes ses méthodes publiques sous la + forme d'un service distant, servi via HTTP par + Yar_Server::handle. +
@@ -23,31 +23,27 @@ &reftitle.classsynopsis; - - Yar_Server + + + Yar_Server + - - - - Yar_Server - - - &Properties; protected + object _executor + null - &Methods; - + + -
&reftitle.properties; @@ -55,14 +51,16 @@ _executor - + + L'objet dont les méthodes publiques sont exposées comme services + RPC. +
- &reference.yar.entities.yar-server; diff --git a/reference/yar/yar_client/call.xml b/reference/yar/yar_client/call.xml index ef3caa755a..3662f1d410 100644 --- a/reference/yar/yar_client/call.xml +++ b/reference/yar/yar_client/call.xml @@ -1,24 +1,28 @@ - - - + - Yar_Client::__call - Service d'appel + Yar_Client::call + Appelle un service distant &reftitle.description; - - public voidYar_Client::__call + + public mixedYar_Client::call stringmethod - arrayparameters + arrayarguments - - Envoie un appel à la méthode RPC distante. - + + Émet un appel RPC vers la méthode distante method. + C'est exactement ce qui se produit lorsqu'une méthode inexistante est + invoquée sur un objet Yar_Client (voir + Yar_Client::__call) ; + Yar_Client::call n'existe que pour permettre + d'atteindre les méthodes distantes littéralement nommées + call ou __call. + @@ -27,17 +31,17 @@ method - - Nom de la méthode RPC distante. - + + Le nom de la méthode du service distant. + - parameters + arguments - - Paramètres. - + + La liste des arguments passés à la méthode distante. + @@ -45,38 +49,26 @@ &reftitle.returnvalues; - - - + + Retourne la valeur de retour de la méthode du service distant. + - - &reftitle.examples; - - Exemple avec <function>Yar_Client::__call</function> - -some_method("parameter"); -?> -]]> - - &example.outputs.similar; - - - - + + &reftitle.errors; + + Lorsque la méthode call n'existe pas du côté du + serveur, une exception + Yar_Server_Request_Exception est lancée. + Voir Yar_Client::__call pour la liste complète + des échecs et de leurs classes d'exception. + - &reftitle.seealso; + Yar_Client::__call Yar_Client::setOpt diff --git a/reference/yar/yar_client/construct.xml b/reference/yar/yar_client/construct.xml index b4bbb295e1..05cba990e2 100644 --- a/reference/yar/yar_client/construct.xml +++ b/reference/yar/yar_client/construct.xml @@ -1,7 +1,5 @@ - - - + @@ -11,26 +9,41 @@ &reftitle.description; - + final public Yar_Client::__construct - stringurl - arrayoptions - - - Crée un Yar_Client sur un serveur - Yar_Server. - + stringuri + arraynulloptionsnull + + + Crée un Yar_Client pour le service RPC situé à + l'adresse uri. + &reftitle.parameters; - url + uri - - URL du serveur Yar. - + + Adresse du service RPC. Le protocole est déduit du schéma : + http:// et https:// + sélectionnent le transport HTTP, tcp:// + sélectionne le transport TCP, et unix:// + sélectionne le transport par socket Unix. + + + + + options + + + Un &array; d'options du client, indexé par les constantes + YAR_OPT_*, équivalent à un appel à + Yar_Client::setOpt pour chaque entrée. Les + options invalides sont ignorées silencieusement. + @@ -38,31 +51,39 @@ &reftitle.returnvalues; - - Une instance Yar_Client. - + + Une nouvelle instance de Yar_Client. + + + + + &reftitle.errors; + + Si l'URI ne commence pas par un schéma supporté, une exception + Yar_Client_Protocol_Exception est lancée. + &reftitle.examples; - Exemple avec <function>Yar_Client::__construct</function> + Exemple avec <methodname>Yar_Client::__construct</methodname> 1000, + YAR_OPT_PACKAGER => "json", +]); ?> ]]> - &example.outputs.similar; - - - - &reftitle.seealso; diff --git a/reference/yar/yar_client/getopt.xml b/reference/yar/yar_client/getopt.xml new file mode 100644 index 0000000000..4917d2d718 --- /dev/null +++ b/reference/yar/yar_client/getopt.xml @@ -0,0 +1,100 @@ + + + + + + Yar_Client::getOpt + Lit une option du client + + + + &reftitle.description; + + public mixedYar_Client::getOpt + intname + + + Retourne la valeur précédemment définie avec + Yar_Client::setOpt, ou avec le paramètre + options de + Yar_Client::__construct. + + + + + &reftitle.parameters; + + + name + + + L'une des constantes YAR_OPT_*, voir + Yar_Client::setOpt. + + + + + + + + &reftitle.returnvalues; + + La valeur de l'option, ou &false; si l'option n'a pas été définie sur ce + client ou si le nom de l'option est inconnu. + + + + + &reftitle.examples; + + Exemple avec <methodname>Yar_Client::getOpt</methodname> + +setOpt(YAR_OPT_TIMEOUT, 1000); + +var_dump($client->getOpt(YAR_OPT_TIMEOUT)); +var_dump($client->getOpt(YAR_OPT_PACKAGER)); +?> +]]> + + &example.outputs.similar; + + + + + + + + &reftitle.seealso; + + Yar_Client::setOpt + + + + + + diff --git a/reference/yar/yar_client/setopt.xml b/reference/yar/yar_client/setopt.xml index 240536c70e..1160feb504 100644 --- a/reference/yar/yar_client/setopt.xml +++ b/reference/yar/yar_client/setopt.xml @@ -1,104 +1,140 @@ - - - + Yar_Client::setOpt - Définit le contexte d'appel + Définit les options du client - + &reftitle.description; - - public Yar_ClientfalseYar_Client::setOpt + + public Yar_ClientboolYar_Client::setOpt intname mixedvalue - - - + + Définit une option sur le client. Les options sont évaluées au moment où + un appel est émis, elles peuvent donc être modifiées entre deux appels. + - + &reftitle.parameters; name - - Peut être : - YAR_OPT_PACKAGER, - YAR_OPT_PERSISTENT (a besoin du support serveur), - YAR_OPT_TIMEOUT, - YAR_OPT_CONNECT_TIMEOUT, - YAR_OPT_HEADER (depuis 2.0.4), - YAR_OPT_PROXY (depuis 2.2.0) - + + L'une des constantes YAR_OPT_* : + + + YAR_OPT_PACKAGER — un nom de packager : php, json ou, lorsque le support de msgpack est compilé, msgpack + YAR_OPT_PERSISTENT — un booléen indiquant une connexion persistante (keep-alive HTTP) + YAR_OPT_TIMEOUT — un délai d'expiration en millisecondes, qui surcharge yar.timeout + YAR_OPT_CONNECT_TIMEOUT — un délai d'expiration de connexion en millisecondes, qui surcharge yar.connect_timeout + YAR_OPT_HEADER (à partir de 2.0.4) — un &array; de lignes d'en-tête HTTP supplémentaires + YAR_OPT_RESOLVE (à partir de 2.1.0) — un &array; d'entrées de résolution de noms d'hôtes + YAR_OPT_PROXY (à partir de 2.2.0) — une adresse de proxy HTTP + YAR_OPT_PROVIDER (à partir de 2.3.0) — l'identité du fournisseur, jusqu'à 32 octets + YAR_OPT_TOKEN (à partir de 2.3.0) — le jeton d'authentification, jusqu'à 32 octets + value - - - + + La valeur de l'option. Une valeur invalide émet une alerte et fait + retourner &false; à l'appel. + - + &reftitle.returnvalues; - - Retourne $this en cas de succès&return.falseforfailure;. - + + Retourne l'objet client lui-même, permettant une interface fluide, ou + &false; lorsque le nom de l'option est inconnu, que la valeur est + invalide, ou que l'option ne s'applique pas au protocole avec lequel le + client a été créé. + + + + + &reftitle.errors; + + Les conditions qui font retourner &false; à l'appel émettent également + une alerte : + + + + + YAR_OPT_HEADER, + YAR_OPT_RESOLVE et + YAR_OPT_PROXY ne fonctionnent qu'avec le + protocole HTTP ; les utiliser avec un client + tcp:// ou unix:// émet une + alerte. + + + + + YAR_OPT_RESOLVE nécessite en outre libcurl + >= 7.21.3. + + + + + Chaque option attend un type de valeur spécifique (chaîne de + caractères, booléen, entier ou tableau), décrit sur la page des + constantes. + + + - + &reftitle.examples; - Exemple avec <function>Yar_Client::setOpt</function> + Exemple avec <methodname>Yar_Client::setOpt</methodname> SetOpt(YAR_OPT_CONNECT_TIMEOUT, 1000); +/* Définit le délai d'expiration à 1 s */ +$client->setOpt(YAR_OPT_TIMEOUT, 1000); -//Définit le packager à JSON -$client->SetOpt(YAR_OPT_PACKAGER, "json"); +/* Définit le packager à JSON */ +$client->setOpt(YAR_OPT_PACKAGER, "json"); -//Définit l'en-tête personnalisé -$client->SetOpt(YAR_OPT_HEADER, array("hr1: val1", "hd2: val2")); +/* Définit des en-têtes personnalisés */ +$client->setOpt(YAR_OPT_HEADER, ["X-Api-Key: value"]); -// Définit le proxy HTTP -$client->SetOpt(YAR_OPT_PROXY, "127.0.0.1:8888"); +/* Passe par un proxy HTTP */ +$client->setOpt(YAR_OPT_PROXY, "127.0.0.1:8888"); /* Appelle le service distant */ $result = $client->some_method("parameter"); ?> ]]> - &example.outputs.similar; - - - - - + &reftitle.seealso; + Yar_Client::getOpt Yar_Client::__call - + - - + Yar_Client_Exception::getType - Récupérer le type de l'exception + Récupère le type de l'exception &reftitle.description; - + public stringYar_Client_Exception::getType - - - - + + Retourne le type de l'exception. Les exceptions côté client sont levées par + le client lui-même (échecs de transport, erreurs de protocole, etc.), aussi + le type est toujours la chaîne fixe + "Yar_Exception_Client". Il faut utiliser + Exception::getCode pour distinguer l'échec + particulier ; le code est l'une des constantes + YAR_ERR_*. + @@ -28,38 +31,43 @@ &reftitle.returnvalues; - + Retourne "Yar_Exception_Client". - + &reftitle.examples; - Exemple avec <function>Yar_Client_Exception::getType</function> + Exemple avec <methodname>Yar_Client_Exception::getType</methodname> some_method("parameter"); +} catch (Yar_Client_Exception $e) { + var_dump($e->getType()); + var_dump($e->getCode()); +} ?> ]]> &example.outputs.similar; - &reftitle.seealso; - Yaf_Server_Exception::getType + Yar_Server_Exception::getType diff --git a/reference/yar/yar_concurrent_client/call.xml b/reference/yar/yar_concurrent_client/call.xml index abcbe8b63a..be7f3b0048 100644 --- a/reference/yar/yar_concurrent_client/call.xml +++ b/reference/yar/yar_concurrent_client/call.xml @@ -1,7 +1,5 @@ - - - + @@ -11,20 +9,27 @@ &reftitle.description; - - public static intYar_Concurrent_Client::call + + public static intfalsenullYar_Concurrent_Client::call stringuri stringmethod - arrayparameters - callablecallback - callableerror_callback - arrayoptions + arraynullparametersnull + callablenullcallbacknull + callablenullerror_callbacknull + arraynulloptionsnull - - Enregistre un appel RPC, mais ne l'envoie pas immédiatement ; il sera - envoyé pendant l'appel à la méthode - Yar_Concurrent_Client::loop. - + + Enregistre un appel RPC distant. La requête n'est pas envoyée + immédiatement ; tous les appels enregistrés sont envoyés ensemble par + Yar_Concurrent_Client::loop, et les réponses + sont traitées au fur et à mesure de leur arrivée. + + + + Seules les URI HTTP et HTTPS sont supportées. Les transports TCP et + socket Unix ne sont pas disponibles pour les appels concurrents. + + @@ -33,40 +38,52 @@ uri - - L'URI du serveur RPC (HTTP, TCP). - + + L'adresse du service RPC, commençant par + http:// ou https://. + method - - Nom du service (i.e. le nom de la méthode). - + + Le nom de la méthode du service distant. + parameters - - Paramètres. - + + La liste des arguments passés à la méthode distante. + callback - - Une fonction de rappel, qui sera appelée par le retour de la réponse. - + + Un callable invoqué lorsque la réponse à cet appel + arrive, avec deux arguments : la valeur de la réponse, et un + &array; callinfo contenant les clés + sequence, uri et + method. S'il est omis, le + callback de + Yar_Concurrent_Client::loop est utilisé. + error_callback - Si cette fonction de rappel est définie, alors Yar l'appellera lorsqu'une erreur surviendra. + Un callable invoqué lorsque cet appel échoue, avec trois + arguments : le type d'erreur (l'un des codes + YAR_ERR_*), le message d'erreur, et l'&array; + callinfo. S'il est omis, le + error_callback de + Yar_Concurrent_Client::loop est utilisé. @@ -74,8 +91,10 @@ options - Un &array; d'options. - Voir la liste des constantes. + Un &array; d'options du client, indexé par les constantes + YAR_OPT_*, voir + Yar_Client::setOpt. Appliqué à cet appel + uniquement. @@ -85,7 +104,14 @@ &reftitle.returnvalues; - Un ID unique ; peut être utilisé pour identifier l'appel. + Retourne le numéro de séquence de l'appel enregistré, un identifiant + unique commençant à 1 qui identifie l'appel. Retourne + &false; lorsque le client concurrent est déjà à l'intérieur de + Yar_Concurrent_Client::loop ou lorsque le + maximum de 128 appels enregistrés est atteint ; dans + les deux cas, une alerte est émise. Retourne &null; si l'URI ou le nom de + la méthode est vide, ou si l'URI n'est pas une adresse HTTP(S), avec une + alerte. @@ -108,23 +134,18 @@ function error_callback($type, $error, $callinfo) Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback"); -// Si la fonction de rappel n'est pas spécifiée, la fonction de rappel de la boucle sera utilisée +/* Si la fonction de rappel n'est pas spécifiée, celle de loop() sera utilisée */ Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters")); -// Ce serveur accepte le packager JSON +/* Ce serveur accepte le packager JSON */ Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json")); -// Délai d'attente maximal personnalisé -Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT => 1)); +/* Délai d'attente personnalisé */ +Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT => 1000)); -// Les requêtes ne sont pas envoyées pour le moment +/* Les requêtes ne sont pas encore envoyées */ ]]> - &example.outputs.similar; - - - @@ -133,8 +154,6 @@ Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters Yar_Concurrent_Client::loop Yar_Concurrent_Client::reset - Yar_Server::__construct - Yar_Server::handle diff --git a/reference/yar/yar_concurrent_client/loop.xml b/reference/yar/yar_concurrent_client/loop.xml index 628d83cdad..887ec68229 100644 --- a/reference/yar/yar_concurrent_client/loop.xml +++ b/reference/yar/yar_concurrent_client/loop.xml @@ -1,23 +1,25 @@ - - - + Yar_Concurrent_Client::loop - Envoie tous les appels + Envoie tous les appels enregistrés et attend leurs réponses &reftitle.description; - - public static boolYar_Concurrent_Client::loop - callablecallback - callableerror_callback + + public static boolnullYar_Concurrent_Client::loop + callablenullcallbacknull + callablenullerror_callbacknull + arraynulloptionsnull - Envoie tous les appels distants RPC enregistrés. + Envoie en parallèle tous les appels enregistrés avec + Yar_Concurrent_Client::call et bloque jusqu'à ce + que chaque réponse soit arrivée et ait été traitée. La liste des appels + est vidée lorsque cette méthode retourne. @@ -27,26 +29,34 @@ callback - - Si la fonction de rappel est définie, alors Yar appellera cette fonction - de rappel après avoir envoyé tous les appels, et avant le retour - des réponses, avec $callinfo valant NULL. - - - Alors, si l'utilisateur ne spécifie pas de fonction de rappel lors de - l'enregistrement d'appel concurrent, cette fonction de rappel sera - utilisée pour gérer les réponses, sinon, la fonction de rappel - spécifiée pendant l'enregistrement sera utilisée. - + + Un callable utilisé pour traiter les réponses des appels + qui ont été enregistrés sans leur propre fonction de rappel. Juste + après l'envoi de toutes les requêtes, il est en outre appelé une fois + avec deux arguments &null;, avant l'arrivée de toute réponse. + error_callback - - Si la fonction de rappel est définie, alors Yar l'appellera - lorsqu'une erreur surviendra. - + + Un callable utilisé pour traiter les erreurs des appels + qui ont été enregistrés sans leur propre fonction de rappel d'erreur. + Il reçoit trois arguments : le type d'erreur (l'un des codes + YAR_ERR_*), le message d'erreur, et l'&array; + callinfo. + + + + + options + + + Un &array; d'options du client, indexé par les constantes + YAR_OPT_*, appliqué à chaque appel enregistré qui + ne les redéfinit pas. + @@ -54,70 +64,62 @@ &reftitle.returnvalues; - - - + + Retourne &true; lorsque chaque appel enregistré a été traité, ou + lorsqu'aucun appel n'a été enregistré. Retourne &false; si le client + concurrent est déjà en cours d'exécution dans une autre boucle ; dans ce + cas, une alerte est émise. + &reftitle.examples; - Exemple avec <function>Yar_Concurrent_Client::loop</function> + Exemple avec <methodname>Yar_Concurrent_Client::loop</methodname> "json")); - // ce serveur accepte le packager json -Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1)); - //Délai d'attente maximal personnalisé -Yar_Concurrent_Client::loop("callback", "error_callback"); //Envoie les requêtes, - //error_callback est optionnel +/* Si la fonction de rappel n'est pas spécifiée, celle de loop() sera utilisée */ +Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters")); + +Yar_Concurrent_Client::loop("callback", "error_callback"); ?> ]]> &example.outputs.similar; - &reftitle.seealso; Yar_Concurrent_Client::call Yar_Concurrent_Client::reset - Yar_Server::__construct - Yar_Server::handle diff --git a/reference/yar/yar_concurrent_client/reset.xml b/reference/yar/yar_concurrent_client/reset.xml index 800b1e8115..726c074762 100644 --- a/reference/yar/yar_concurrent_client/reset.xml +++ b/reference/yar/yar_concurrent_client/reset.xml @@ -1,6 +1,5 @@ - - + @@ -10,13 +9,23 @@ &reftitle.description; - + public static boolYar_Concurrent_Client::reset - - Nettoie tous les appels enregistrés. - + + Abandonne tous les appels enregistrés avec + Yar_Concurrent_Client::call qui n'ont pas encore + été envoyés. + + + + Yar_Concurrent_Client::loop vide + automatiquement la liste des appels une fois qu'elle a terminé ; reset + n'est donc nécessaire que pour abandonner un lot qui n'a jamais été + envoyé. + + @@ -26,8 +35,12 @@ &reftitle.returnvalues; - - + + Retourne &true;, ou &false; lorsque le client concurrent est actuellement + à l'intérieur de + Yar_Concurrent_Client::loop, auquel cas une + erreur de niveau E_WARNING est émise. + @@ -36,13 +49,18 @@ Exemple avec <function>Yar_Concurrent_Client::reset</function> ]]> - &example.outputs.similar; - - - @@ -51,8 +69,6 @@ Yar_Concurrent_Client::call Yar_Concurrent_Client::loop - Yar_Server::__construct - Yar_Server::handle diff --git a/reference/yar/yar_server/construct.xml b/reference/yar/yar_server/construct.xml index e331cf10d5..227b6061f0 100644 --- a/reference/yar/yar_server/construct.xml +++ b/reference/yar/yar_server/construct.xml @@ -1,36 +1,35 @@ - - - + Yar_Server::__construct - Enregistre un serveur + Crée un serveur RPC &reftitle.description; - + final public Yar_Server::__construct - Objectobj - - - Configure un serveur Yar HTTP RPC. Toutes les méthodes publiques - de l'objet $obj seront enregistrées comme un service RPC. - + objectexecutor + + + Crée un serveur Yar HTTP RPC. Toutes les méthodes publiques de + executor sont enregistrées comme services RPC. + &reftitle.parameters; - obj + executor - - Un objet. Toutes les méthodes publiques de cet objet seront enregistrées - comme services RPC. - + + Tout objet dont les méthodes publiques devraient être exposées comme + services RPC. Les méthodes protégées et privées, ainsi que les méthodes + dont le nom commence par un tiret bas, ne sont pas exposées. + @@ -38,23 +37,23 @@ &reftitle.returnvalues; - - Une instance de la classe Yar_Server. - + + Une instance de Yar_Server. + &reftitle.examples; - Exemple avec <function>Yar_Server::__construct</function> + Exemple avec <methodname>Yar_Server::__construct</methodname> handle(); ?> ]]> - &example.outputs.similar; - - - - &reftitle.seealso; - - Yar_Server::handle - + + + Yar_Server::handle + + diff --git a/reference/yar/yar_server/handle.xml b/reference/yar/yar_server/handle.xml index d7a9528890..086b11b423 100644 --- a/reference/yar/yar_server/handle.xml +++ b/reference/yar/yar_server/handle.xml @@ -1,30 +1,43 @@ - - - + Yar_Server::handle - Démarre un serveur RPC + Démarre le serveur RPC &reftitle.description; - - public bool Yar_Server::handle - + + public boolYar_Server::handle + - - Démarre un serveur RPC HTTP, et le rend prêt à accepter des requêtes RPC. - - - Les appels RPC sont envoyés par des requêtes HTTP POST. - Si une requête HTTP GET est envoyée à l'URI, les informations du service - (commenté dans la section ci-dessous) seront affichées sur la page. - - - + + Démarre le traitement de la requête RPC entrante. + + + + Les appels RPC habituels sont émis sous forme de requêtes HTTP POST. + Si une requête HTTP GET est émise à la place, la page d'informations du + service, générée à partir des méthodes publiques de l'objet exécuteur et + de leurs commentaires de documentation, est affichée. Ce comportement peut + être désactivé avec la directive + yar.expose_info, + auquel cas une requête GET lève une + Yar_Server_Exception. + + + + + À partir de Yar 2.3.0, la page d'informations du service peut être + personnalisée en définissant une méthode protected + nommée __info sur l'objet exécuteur. Lorsqu'une requête + GET arrive, Yar appelle cette méthode en lui passant le balisage de la page + qu'il aurait sinon produite ; si la méthode retourne une &string;, cette + chaîne est envoyée au client à la place de la page par défaut. + + @@ -34,25 +47,97 @@ &reftitle.returnvalues; + + Retourne &true;. + + + + + &reftitle.errors; - Un booléen. + + Erreurs de <methodname>Yar_Server::handle</methodname> + + + + Condition + Exception + + + + + + La méthode distante a levé une exception. + + + Yar_Server_Exception (avec le nom de + classe d'origine dans sa propriété _type). + + + + + La méthode distante est introuvable ou n'est pas publique. + + + Yar_Server_Request_Exception. + + + + + Le corps de la requête n'a pas pu être décodé. + + + Yar_Server_Packager_Exception. + + + + + La requête est mal formée au niveau du protocole. + + + Yar_Server_Protocol_Exception. + + + + + Les données de sortie du serveur n'ont pas pu être capturées. + + + Yar_Server_Output_Exception. + + + + + L'authentification a échoué, ou la page d'informations a été demandée + alors que yar.expose_info + est désactivée. + + + Yar_Server_Exception avec le code + YAR_ERR_FORBIDDEN. + + + + +
&reftitle.examples; - Exemple avec <function>Yar_Server::handle</function> + Exemple avec <methodname>Yar_Server::handle</methodname> handle(); ?> ]]> - &example.outputs.similar; - + + + Personnalisation de la page d'informations du service avec + <literal>__info</literal> (à partir de Yar 2.3.0) + handle(); +?> ]]> - + - &reftitle.seealso; - - Yar_Server::__construct - + + + Yar_Server::__construct + +
diff --git a/reference/yar/yar_server_exception/gettype.xml b/reference/yar/yar_server_exception/gettype.xml index b5dde12833..986ba9c40c 100644 --- a/reference/yar/yar_server_exception/gettype.xml +++ b/reference/yar/yar_server_exception/gettype.xml @@ -1,23 +1,24 @@ - - - + Yar_Server_Exception::getType - Récupérer le type de l'exception + Récupère le type de l'exception &reftitle.description; - - public stringYar_Server_Exception::getType + + public stringintYar_Server_Exception::getType - - Récupère le type de l'exception émise par le serveur. - + + Lorsqu'une méthode distante lève une exception, le serveur intègre + l'exception d'origine dans la réponse et le client la relève sous la forme + d'une Yar_Server_Exception. Cette méthode + retourne le nom de classe de cette exception d'origine. + @@ -27,19 +28,21 @@ &reftitle.returnvalues; - - Une chaîne de caractères. - + + Le nom de classe de l'exception levée par le service distant, ou + "Yar_Exception_Server" lorsque l'exception côté serveur + ne comportait aucun nom de classe. + &reftitle.examples; - Exemple avec <function>Yar_Server_Exception::getType</function> + Exemple avec <methodname>Yar_Server_Exception::getType</methodname> handle(); ?> - -//Client.php +]]> + + +getType()); var_dump($e->getMessage()); } +?> ]]> &example.outputs.similar; @@ -74,11 +81,10 @@ string(6) "client" - &reftitle.seealso; - + Yar_Client_Exception::getType