Les plugins permettent, selon leur type, d'étendre les possibilités du framework / de votre application.
Un plugin coord permet d'agir avant/pendant/après une action d'un contrôleur.
L'intérêt de celui-ci est de coder une fois pour toute un comportement quand une action se produit, plutôt que de mettre dans une classe métier ce même code et l'appeler à chaque action avec un jClasses::inc();
C'est plus simple et plus clair à lire et le contrôleur est bien plus maintenable.
Exemple : le plugin coord auth de jelix, permet de vérifier qu'un utilisateur est identifié.
Son installation se fait en ajoutant au sein du fichier defaultconfig.ini.php dans la section coordplugins la ligne auth=auth.coord.ini.php
[coordplugins] auth=auth.coord.ini.php
puis ajoutant l'array $pluginParams dans son contrôleur.
class adminCtrl extends jController { public $pluginParams = array( '*' => array('auth.required'=>true)); ... }
ici, nous demandons à jelix (via le coordinateur auth) que les accès à toutes les actions (grâce à l'étoile) du contrôleur adminCtrl soient possibles uniquement si l'utilisateur est identifié.
class adminCtrl extends jController { public $pluginParams = array( '*' => array('auth.required'=>true, 'hfnu.check.installed'=>true, 'banuser.check'=>true, ), 'index' => array( 'jacl2.right'=>'hfnu.admin.index'), 'config'=> array( 'jacl2.right'=>'hfnu.admin.config'), 'check_upgrade'=> array( 'jacl2.right'=>'hfnu.admin.config') ); ... }
ici nous indiquons à 4 plugins coord les actions à faire :
petites explications :
Si l'utilisateur accède à http://foobar.com/backoffice?action=admin:index, le plugin ACL vérifie que le droit 'hfnu.admin.config' lui est attribué, si non affiche un message / renvoi l'utilisateur.
Maintenant que nous avons vu comment on utilisait un plugin coord dans un contrôleur, voyons comment en coder un.
un plugin coord se compose de 3 fichiers :
Voyons un coordinateur vérifiant que son application est installée, et si elle ne l'est pas, renvoi l'utilisateur vers la page d'installation ou affiche un message d'erreur.
ici le fichier de configuration permettra justement au webmaster de décider du comportement : afficher un message ou renvoyer sur la page d'installation.
Voici une illustration de l'interaction entre Coordinateur, fichier de config, Contrôleur :
Consulter les sources illustrant l'article :