Plugins
PHP Manual
PHP Manual»Exemples»Plugins

Exemple #1 Plugins

Un plugin s'insère dans le cycle de distribution en étendant Yaf_Plugin_Abstract et en redéfinissant une ou plusieurs de ses six méthodes d'accrochage, puis il est enregistré auprès du distributeur avec Yaf_Dispatcher::registerPlugin(), typiquement dans le Bootstrap :

<?php
class UserPlugin extends Yaf_Plugin_Abstract
{
    public function routerStartup(
        Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
    {
        // avant le routage : inspecte ou réécrit l'URI brute de la requête
    }

    public function routerShutdown(
        Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
    {
        // après le routage : module/contrôleur/action sont connus, idéal pour un contrôle d'accès par route
    }

    public function dispatchLoopStartup(
        Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
    {
        // avant la boucle de distribution : initialisation unique partagée par toutes les distributions
    }

    public function preDispatch(
        Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
    {
        // avant chaque distribution : filtre les paramètres ou redirige avant l'exécution de l'action
    }

    public function postDispatch(
        Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
    {
        // après chaque distribution : décore la réponse ou la vue rendue
    }

    public function dispatchLoopShutdown(
        Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
    {
        // après la boucle de distribution : nettoyage final, journalisation ou vidage des tampons
    }
}

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