(Yaf >=1.0.0)
Yaf_Router::route — El propósito de route
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.
requestLa instancia de Yaf_Request_Abstract a enrutar.
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.
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"