(Yaf >=1.0.0)
Yaf_Router::route — Route une requête
Route la requête avec les routes enregistrées.
Les routes sont essayées dans l'ordre inverse de leur enregistrement. La première route qui revendique la requête l'emporte ; la requête est alors marquée comme routée (voir Yaf_Request_Abstract::setRouted()) et le nom de la route gagnante est enregistré, ce qui permet de le récupérer via Yaf_Router::getCurrentRoute().
La route par défaut, enregistrée sous le nom _default, est Yaf_Route_Static, sauf si une route par défaut personnalisée est configurée.
requestL'instance de Yaf_Request_Abstract à router.
Retourne true si la requête a été routée, ou false si aucune route ne correspond (par exemple, une URI mal formée), ce qui arrête le distributeur.
Exemple #1 Exemple avec 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"]
));
/* route une requête construite à la main, par exemple dans un test unitaire */
$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 {
/* aucune route ne correspond */
}
}
}
?>Résultat de l'exemple ci-dessus est similaire à :
string(7) "rewrite" string(7) "product" string(6) "detail" string(3) "123"