(Yaf >=1.0.0)
Yaf_Plugin_Abstract::routerShutdown — Point d'accroche après le routage
$request, Yaf_Response_Abstract $response): voidCe point d'accroche est déclenché une fois le processus de routage terminé et les noms du contrôleur et de l'action résolus, mais avant le démarrage de la boucle de distribution. Il est habituellement utilisé pour des contrôles d'accès tels qu'une vérification de connexion, car le contrôleur et l'action cibles sont déjà connus.
requestL'instance de Yaf_Request_Abstract en cours de distribution.
responseL'instance de Yaf_Response_Abstract.
Aucune valeur n'est retournée.
Exemple #1 Exemple avec Yaf_Plugin_Abstract::routerShutdown()
<?php
class AuthPlugin extends Yaf_Plugin_Abstract
{
public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
{
/* le routage est terminé, donc le contrôleur et l'action cibles
* sont connus : vérifier si l'utilisateur peut y accéder */
$public = array("Index" => array("index"), "User" => array("login"));
$controller = $request->getControllerName();
$action = $request->getActionName();
if (isset($public[$controller]) && in_array($action, $public[$controller])) {
return;
}
if (!Yaf_Session::getInstance()->has("login")) {
$response->setRedirect("/user/login");
$request->setDispatched(true); // ne pas distribuer la requête
}
}
}
/* les plugins sont enregistrés dans le bootstrap */
class Bootstrap extends Yaf_Bootstrap_Abstract
{
public function _initPlugin(Yaf_Dispatcher $dispatcher)
{
$dispatcher->registerPlugin(new AuthPlugin());
}
}
?>