PHP 8.4.26 Released!

Yar_Server::handle

(PECL yar >= 1.0.0)

Yar_Server::handle — Démarre le serveur RPC

Description

public function Yar_Server::handle(): bool

Démarre le traitement de la requête RPC entrante.

Note:

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 et de leurs commentaires de documentation de l'objet exécuteur, est affichée. Ce comportement peut être désactivé avec la directive yar.expose_info, auquel cas une requête GET lance une Yar_Server_Exception.

Note:

À partir de Yar 2.3.0, l'objet exécuteur peut définir les méthodes magiques protégées __info et __auth pour personnaliser la page d'informations du service et authentifier les requêtes ; voir Yar_Server::__construct() pour les détails.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true.

Erreurs / Exceptions

Erreurs de Yar_Server::handle()
Condition Exception
La méthode distante a lancé une exception. Yar_Server_Exception (avec le nom de la classe d'origine dans sa propriété _type).
La méthode distante n'a pas été trouvée 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.
La sortie du serveur n'a pas pu être capturée. 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.

Exemples

Exemple #1 Exemple avec Yar_Server::handle()

<?php
class API {
    /**
     * Le bloc de documentation est affiché sur la page d'informations 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();
?>

Exemple #2 Personnalisation de la page d'informations du service avec __info (à partir de Yar 2.3.0)

<?php
class API {
    public function some_method($parameter, $option = "foo") {
        return "some_method";
    }

    /*
     * Doit être protected. Cette méthode est appelée sur les requêtes GET avec
     * le balisage de la page que Yar aurait autrement produite, et la chaîne
     * qu'elle retourne est envoyée au client à la place.
     */
    protected function __info($markup) {
        return "Hello world";
    }
}

$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.
To Top