La classe Yaf_Plugin_Abstract
(Yaf >=1.0.0)
Introduction
Les plugins vous apportent la possibilité d'étendre et de personnaliser facilement le framework.
Les plugins sont des classes. La définition actuelle d'une classe varie suivant le composant -- vous pouvez avoir besoin d'implémenter cette interface, mais il s'agit belle et bien d'une classe en tant que tel.
Un plugin peut être chargé dans Yaf en utilisant la méthode Yaf_Dispatcher::registerPlugin(), une fois enregistré. Toutes les méthodes implémentées par le plugin sur cette interface seront appelées au moment voulu.
Exemples
Exemple #1 Exemple d'un plugin
<?php
/* La classe bootstrap doit être définie ici : ./application/Bootstrap.php */
class Bootstrap extends Yaf_Bootstrap_Abstract {
public function _initPlugin(Yaf_Dispatcher $dispatcher) {
/* Enregistre un plugin */
$dispatcher->registerPlugin(new TestPlugin());
}
}
/* La classe du plugin doit être placée ici : ./application/plugins/ */
class TestPlugin extends Yaf_Plugin_Abstract {
public function routerStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
/* avant le routage, l'utilisateur peut faire quelques ré-écritures d'URL */
var_dump("routerStartup");
}
public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
/* le routage est terminé, l'utilisateur peut vérifier l'identifiant */
var_dump("routerShutdown");
}
public function dispatchLoopStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
var_dump("dispatchLoopStartup");
}
public function preDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
var_dump("preDispatch");
}
public function postDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
var_dump("postDispatch");
}
public function dispatchLoopShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
/* Dernier partie : l'utilisateur peut s'identifier ou implémenter l'interface */
var_dump("dispatchLoopShutdown");
}
}
Class IndexController extends Yaf_Controller_Abstract {
public function indexAction() {
return FALSE; //prevent rendering
}
}
$config = array(
"application" => array(
"directory" => dirname(__FILE__) . "/application/",
),
);
$app = new Yaf_Application($config);
$app->bootstrap()->run();
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
string(13) "routerStartup" string(14) "routerShutdown" string(19) "dispatchLoopStartup" string(11) "preDispatch" string(12) "postDispatch" string(20) "dispatchLoopShutdown"
Synopsis de la classe
$request
, Yaf_Response_Abstract $response
) : void$request
, Yaf_Response_Abstract $response
) : voidSommaire
- Yaf_Plugin_Abstract::dispatchLoopShutdown — Le but de dispatchLoopShutdown
- Yaf_Plugin_Abstract::dispatchLoopStartup — Crochet avant une boucle de répétitionp
- Yaf_Plugin_Abstract::postDispatch — Le but de postDispatch
- Yaf_Plugin_Abstract::preDispatch — Le but de preDispatch
- Yaf_Plugin_Abstract::preResponse — Le but de preResponse
- Yaf_Plugin_Abstract::routerShutdown — Le but de routerShutdown
- Yaf_Plugin_Abstract::routerStartup — Hook RouterStartup
Version en cache
23/12/2024 00:55:51 Cette version de la page est en cache (à la date du 23/12/2024 00:55:51) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-class.yaf-plugin-abstract.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.