PHP 8.6.0 Beta 3 is available for testing

Yar_Concurrent_Client::call

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::callEnregistre un appel concurrent

Description

public static function Yar_Concurrent_Client::call(
    string $uri,
    string $method,
    ?array $parameters = null,
    ?callable $callback = null,
    ?callable $error_callback = null,
    ?array $options = null
): int|false|null

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.

Note:

Seules les URI HTTP et HTTPS sont supportées. Les appels concurrents sont envoyés simultanément via l'interface multi-handle de curl, que le transport TCP/socket Unix n'implémente pas.

Liste de paramètres

uri

Adresse du service RPC, commençant par http:// ou https://.

method

Le nom de la méthode du service distant.

parameters

La liste des arguments passés à la méthode distante.

callback

Un callable invoqué lorsque la réponse à cet appel arrive, avec deux arguments : la valeur de la réponse, et un tableau callinfo décrivant l'appel :

  • sequence — le numéro de séquence retourné lors de l'enregistrement de l'appel
  • uri — l'adresse du service
  • method — le nom de la méthode distante

S'il est omis, la fonction de rappel callback de Yar_Concurrent_Client::loop() est utilisée ; voir cette méthode pour ce qui se passe quand ni l'un ni l'autre n'est fourni.

error_callback

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'tableau callinfo décrit ci-dessus. S'il est omis, la fonction de rappel error_callback de Yar_Concurrent_Client::loop() est utilisée ; voir cette méthode pour ce qui se passe quand ni l'un ni l'autre n'est fourni.

options

Un tableau d'options du client, indexé par les constantes YAR_OPT_*, voir Yar_Client::setOpt(). Appliqué à cet appel uniquement.

Valeurs de retour

Retourne le numéro de séquence de l'appel enregistré, un ID 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.

Exemples

<?php

function callback($retval, $callinfo)
{
    var_dump($retval);
}

function error_callback($type, $error, $callinfo)
{
    error_log($error);
}

Yar_Concurrent_Client::call("http://api.example.com/operator.php", "some_method", array("parameters"), "callback");

/* Si la fonction de rappel n'est pas spécifiée, celle de loop() sera utilisée */
Yar_Concurrent_Client::call("http://api.example.com/operator.php", "some_method", array("parameters"));

/* Ce serveur accepte le packager JSON */
Yar_Concurrent_Client::call("http://api.example.com/operator.php", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));

/* Délai d'attente maximal personnalisé */
Yar_Concurrent_Client::call("http://api.example.com/operator.php", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT => 1000));

/* Les requêtes ne sont pas encore envoyées */

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top