Yar_Server::__construct

(PECL yar >= 1.0.0)

Yar_Server::__construct — CrĂ©e un serveur RPC

Description

final public function Yar_Server::__construct(object $executor)

Crée un serveur Yar HTTP RPC. Toutes les méthodes publiques de executor sont enregistrées comme services RPC.

Liste de paramĂštres

executor

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.

L'exécuteur peut optionnellement définir deux méthodes magiques protégées, reconnues par Yar_Server::handle() et jamais exposées comme points d'entrée RPC :

  • protected function __info(string $markup): string — depuis Yar 2.3.0. AppelĂ©e lorsque la page d'information du service est demandĂ©e ; elle reçoit le contenu de la page que Yar aurait sinon affichĂ©e, et si elle retourne une chaĂźne de caractĂšres, cette chaĂźne est envoyĂ©e au client Ă  la place. Voir Yar_Server::handle().

  • protected function __auth(string $provider, string $token): bool — depuis Yar 2.3.0. AppelĂ©e au tout dĂ©but de chaque requĂȘte avec les champs provider et token de l'en-tĂȘte de requĂȘte, dĂ©finis par le client avec les options YAR_OPT_PROVIDER et YAR_OPT_TOKEN. Retourner exactement false rejette la requĂȘte ; toute autre valeur de retour la laisse s'exĂ©cuter. Voir Yar_Server::handle().

Les deux mĂ©thodes ne prennent effet que lorsqu'elles sont protected ; une mĂ©thode publique ou privĂ©e portant le mĂȘme nom est ignorĂ©e.

Valeurs de retour

Une instance de Yar_Server.

Exemples

Exemple #1 Exemple avec Yar_Server::__construct()

<?php
class API {
    /**
     * Le bloc de documentation est affiché sur la page d'information du service.
     * @param string $parameter
     * @return string
     */
    public function some_method($parameter, $option = "foo") {
         return "some_method";
    }

    protected function client_can_not_see() {
    }
}

$service = new Yar_Server(new API());
$service->handle();
?>

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.