(Yaf >=1.0.0)
Yaf_Plugin_Abstract::routerShutdown — El propósito de routerShutdown
$request, Yaf_Response_Abstract $response): voidEste enganche se dispara una vez terminado el proceso de enrutamiento y resueltos los nombres del controlador y de la acción, pero antes de que comience el bucle de despacho. Se usa habitualmente para comprobaciones de control de acceso, como la verificación de identificación, porque el controlador y la acción de destino ya se conocen.
requestLa instancia de Yaf_Request_Abstract que se está despachando.
responseLa instancia de Yaf_Response_Abstract.
No se devuelve ningún valor.
Ejemplo #1 Ejemplo de Yaf_Plugin_Abstract::routerShutdown()
<?php
class AuthPlugin extends Yaf_Plugin_Abstract
{
public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
{
/* el enrutamiento ha terminado, así que el controlador y la acción
* de destino se conocen: se comprueba si el usuario puede acceder */
$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); // no despachar la petición
}
}
}
/* los plugins se registran en el bootstrap */
class Bootstrap extends Yaf_Bootstrap_Abstract
{
public function _initPlugin(Yaf_Dispatcher $dispatcher)
{
$dispatcher->registerPlugin(new AuthPlugin());
}
}
?>