Bonjour,
Est ce qu'il y a moyen de faire une sorte de preDispatch() commun a tous les controllers, donc l'écrire qu'une et une seule fois a un endroit et qui soit appelé avant chaque page.
Yoshio
Version imprimable
Bonjour,
Est ce qu'il y a moyen de faire une sorte de preDispatch() commun a tous les controllers, donc l'écrire qu'une et une seule fois a un endroit et qui soit appelé avant chaque page.
Yoshio
Faire un plugin :)
On peux le charger avant l'exécution de tout les controller sans devoir le mettre dans chaque init() ?
Oui ;) C'est le principe du plugin.
tu as un lien vers un tuto/doc officiel ?
La doc officiel...C'est un bon début.....
http://framework.zend.com/manual/fr/...r.plugins.html
Désolé de ne pas avoir eu envie de passer toutes les classes une par une ...
Est ce qu'il y a un dossier spécial pour placer les plugin ?
Non pas spécialement.
Personellement j'ai un répertoires "libraires" qui contient le repértoire du Zend Framework ( "Zend" ) et j'utilise la même convetion que le framework pour stocker mes classses, mais dans un repertoire "My" par exemple ( My_Plugin_Auth => /libraries/My/Plugin/Auth.php )
il y a beaucoup plus simple
la dérivation
par défaut on dérive ne contrôleur de Zend_Controller_Action
on a donc
Zen_Controller_Action<-My_Controller
il suffit d'écrire une classe Myapp_Controller_Action qui dérive de Zen_Controller_Action et de fair dériver ses contrôleurs de Myapp_Controller_Action
ainsi :
Zen_Controller_Action<-Myapp_Controller_Action<-My_Controller
tout ce qui est commun à tous tes contrôleurs peut alors êtres mis dans Myapp_Controller_Action
tu peux aussi Classifier tes contrôleurs
en faisant un hérarchie
Zen_Controller_Action<-Myapp_Controller_Action<-Index_Controller
Zen_Controller_Action<-Myapp_Controller_Action<-Myadmin_Controller_Action<-Useradmin_Controller
Zen_Controller_Action<-Myapp_Controller_Action<-Myadmin_Controller_Action<-Groupadmin_Controller
Zen_Controller_Action<-Myapp_Controller_Action<-Myuser_Controller_Action<-Tools_Controller
Myapp_Controller_Action détient alors tout ce qui est commun à toute l'application
Myadmin_Controller_Action tout ce qui est commun à tous les contrôleur d'administration
Myuser_Controller_Action ce qui est commun au contrôleurs d'usage de l'application.
A+JYT
..Chacun sa notion de simplicité ;)Citation:
il y a beaucoup plus simple
la dérivation
heu
et c'est faitCode:
1
2
3
4
5
6
7 class Myapp_Controller_Action extends Zend_Controller_Action { } class Exemple_Controller extends MyApp_Controller_Action { .... }
pour moi à par ne rien faire je ne vois pas la complexité
A+JYT
Un plugin c'est pareil pour le coup...
Faut mettre ton code dans la méthode preDispatch() et voilà...
Moi je suis partis sur le principe de l'héritage et c'est après coup que j'ai vu que l'on pouvait faire des plugins.
Mais comment doit-on faire si je veux que certains contrôleur n'utilise pas le plugin? Avec l'héritage c'étais facile, je ne les faisais pas hériter.