Plugins
PHP Manual
PHP Manual»Ejemplos»Plugins

Ejemplo #1 Plugins

Un plugin se integra en el ciclo de despacho extendiendo Yaf_Plugin_Abstract y sobreescribiendo uno o más de sus seis métodos de enganche; luego se registra en el despachador con Yaf_Dispatcher::registerPlugin(), normalmente en el Bootstrap:

<?php
class UserPlugin extends Yaf_Plugin_Abstract
{
    public function routerStartup(
        Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
    {
        // antes del enrutamiento: inspeccionar o reescribir la URI de la petición en bruto
    }

    public function routerShutdown(
        Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
    {
        // después del enrutamiento: módulo/controlador/acción son conocidos, adecuado para control de acceso por ruta
    }

    public function dispatchLoopStartup(
        Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
    {
        // antes del bucle de despacho: configuración única compartida por todos los despachos
    }

    public function preDispatch(
        Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
    {
        // antes de cada despacho: filtrar parámetros o redirigir antes de ejecutar la acción
    }

    public function postDispatch(
        Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
    {
        // después de cada despacho: decorar la respuesta o la vista renderizada
    }

    public function dispatchLoopShutdown(
        Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
    {
        // después del bucle de despacho: limpieza final, registro o vaciado
    }
}

class Bootstrap extends Yaf_Bootstrap_Abstract
{
    public function _initPlugin(Yaf_Dispatcher $dispatcher)
    {
        $dispatcher->registerPlugin(new UserPlugin());
    }
}
?>
To Top