Envoie tous les appels

# Yar_Concurrent_Client::loop

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::loop — Envoie tous les appels

### Description

public static function Yar_Concurrent_Client::loop(callable `$callback` = ?, callable `$error_callback` = ?): bool

Envoie tous les appels distants RPC enregistrés.

### Liste de paramètres

`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.

`error_callback`

  Si la fonction de rappel est définie, alors Yar l'appellera lorsqu'une erreur surviendra.

### Valeurs de retour

### Exemples

Exemple #1 Exemple avec Yar_Concurrent_Client::loop()

    <?php
    function callback($retval, $callinfo) {
         if ($callinfo == NULL) {
            echo "Maintenant, toutes les requêtes ont été émises, et aucune réponse n'est disponible\n";
         } else {
            echo "Ceci est une réponse à un appel distant, le nom de la méthode est ", $callinfo["method"],
                 ". La séquence d'appel est " , $callinfo["sequence"] , "\n";
            var_dump($retval);
         }
    }

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

    Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback");
    Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"));   // Si la fonction de rappel n'est pas spécifiée
                                                                                   // la fonction de rappel de la boucle sera utilisée
    Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "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
    ?>

Résultat de l'exemple ci-dessus est similaire à :

    Maintenant, toutes les requêtes ont été émises, et aucune réponse n'est disponible
    Ceci est une réponse à un appel distant, le nom de la méthode est some_method. La séquence d'appel est 4
    string(11) "some_method"
    Ceci est une réponse à un appel distant, le nom de la méthode est some_method. La séquence d'appel est 1
    string(11) "some_method"
    Ceci est une réponse à un appel distant, le nom de la méthode est some_method. La séquence d'appel est 2
    string(11) "some_method"
    Ceci est une réponse à un appel distant, le nom de la méthode est some_method. La séquence d'appel est 3
    string(11) "some_method"

### Voir aussi

- Yar_Concurrent_Client::call() - Enregistre un appel concurrent
- Yar_Concurrent_Client::reset() - Nettoie tous les appels enregistrés
- Yar_Server::__construct() - Enregistre un serveur
- Yar_Server::handle() - Démarre un serveur RPC

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open