PHP 8.6.0 Beta 3 is available for testing

Yar_Server::handle

(PECL yar >= 1.0.0)

Yar_Server::handleInicia el servidor RPC

Descripción

public function Yar_Server::handle(): bool

Empieza a atender la petición RPC entrante.

Nota:

Las llamadas RPC habituales se emiten como peticiones HTTP POST. Si en su lugar se emite una petición HTTP GET, se muestra la página de información del servicio, generada a partir de los métodos públicos y de sus bloques de documentación del objeto ejecutor. Este comportamiento se puede desactivar con la directiva yar.expose_info, en cuyo caso una petición GET lanza una Yar_Server_Exception.

Nota:

A partir de Yar 2.3.0, el objeto ejecutor puede definir los métodos mágicos protegidos __info y __auth para personalizar la página de información del servicio y para autenticar las peticiones; véase Yar_Server::__construct() para más detalles.

Parámetros

Esta función no contiene ningún parámetro.

Valores devueltos

Devuelve true.

Errores/Excepciones

Errores de Yar_Server::handle()
Condición Excepción
El método remoto lanzó una excepción. Yar_Server_Exception (con el nombre de clase original en su propiedad _type).
El método remoto no se encontró o no es público. Yar_Server_Request_Exception.
El cuerpo de la petición no se pudo desempaquetar. Yar_Server_Packager_Exception.
La petición está mal formada a nivel de protocolo. Yar_Server_Protocol_Exception.
La salida del servidor no se pudo capturar. Yar_Server_Output_Exception.
La autenticación falló, o se solicitó la página de información mientras yar.expose_info está desactivada. Yar_Server_Exception con el código YAR_ERR_FORBIDDEN.

Ejemplos

Ejemplo #1 Ejemplo de Yar_Server::handle()

<?php
class API {
    /**
     * El bloque de documentación se muestra en la página de información del servicio.
     * @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();
?>

Ejemplo #2 Personalización de la página de información del servicio con __info (a partir de Yar 2.3.0)

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

    /*
     * Debe ser protected. Se llama en las peticiones GET con el marcado de
     * la página que Yar mostraría en otro caso, y el valor de cadena que
     * devuelve se envía al cliente en su lugar.
     */
    protected function __info($markup) {
        return "Hola mundo";
    }
}

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

Véase también

add a note

User Contributed Notes

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