PHP 8.3.4 Released!

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();
?>

Résultat de l'exemple ci-dessus est similaire à :

string(13) "routerStartup"
string(14) "routerShutdown"
string(19) "dispatchLoopStartup"
string(11) "preDispatch"
string(12) "postDispatch"
string(20) "dispatchLoopShutdown"

Synopsis de la classe

class Yaf_Plugin_Abstract {
/* Méthodes */
}

Sommaire

add a note

User Contributed Notes 1 note

up
1
gianjason#gmail.com
11 years ago
All the methods which the plugin implemented according to this interface, will be called at the proper time automatically.
To Top