PHP 8.6.0 Beta 3 is available for testing

Yaf_Router::route

(Yaf >=1.0.0)

Yaf_Router::routeEl propósito de route

Descripción

public function Yaf_Router::route(Yaf_Request_Abstract $request): ?bool

Enruta la petición con las rutas registradas.

Las rutas se prueban en orden inverso al de registro. Gana la primera ruta que captura la petición; la petición se marca entonces como enrutada (ver Yaf_Request_Abstract::setRouted()) y se registra el nombre de la ruta ganadora, que puede recuperarse mediante Yaf_Router::getCurrentRoute().

La ruta por omisión, registrada como _default, es Yaf_Route_Static, salvo que se configure una ruta por omisión personalizada.

Parámetros

request

La instancia de Yaf_Request_Abstract a enrutar.

Valores devueltos

Devuelve true si la petición ha sido enrutada, o false si ninguna ruta ha coincidido (por ejemplo, un URI mal formado), lo que hace que el despachador se detenga.

Ejemplos

Ejemplo #1 Ejemplo de Yaf_Router::route()

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract
{
    public function _initRoute(Yaf_Dispatcher $dispatcher)
    {
        $router = $dispatcher->getRouter();

        $router->addRoute("rewrite", new Yaf_Route_Rewrite(
            "/product/:id",
            ["controller" => "product", "action" => "detail"]
        ));

        /* enruta una petición construida a mano, por ejemplo en una prueba unitaria */
        $request = new Yaf_Request_Simple("CLI", null, "index.php",
            "/product/123", null);

        if ($router->route($request)) {
            var_dump($router->getCurrentRoute());
            var_dump($request->getControllerName());
            var_dump($request->getActionName());
            var_dump($request->getParam("id"));
        } else {
            /* no route matched */
        }
    }
}
?>

Resultado del ejemplo anterior es similar a:

string(7) "rewrite"
string(7) "product"
string(6) "detail"
string(3) "123"

Véase también

add a note

User Contributed Notes

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