|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2011 Messages : 21 ![]() |
Bonjour
J'aimerai savoir la différence entre entre la fonction "init" et "preDispatche" dans un controleur. Merci d'avance |
|
|
00
|
|
|
#2 |
![]() ![]() Loïc Développeur Web Inscription : février 2011 Messages : 680 ![]() |
Bonjour,
Le init peut etre comparer au constructeur du controller, du coup celui ci est appelé à l instanciation du controleur tandis que le predispatch est appelé avant l action, donc tout dépend de ce que tu veux faire. |
|
|
10
|
|
|
#3 |
|
Membre confirmé
![]() ![]() Lucas CORBEAUXChef de projet MOE Inscription : février 2003 Messages : 159 ![]() |
Outre le côté "séparation des rôles" (init() sert à l'initialisation du contrôleur, comme le souligne 5h4rk c'est une sorte de constructeur fournit aux développeurs, tandis que preDispatch() est un hook qui se déclenche avant une action), il y a une différence de fonctionnement notable entre init() et preDispatch(), elle concerne les "forwards" vers une autre action (ex : test des autorisations et redirection si l'action n'est pas autorisée).
init() ne gère pas bien l'appel à la méthode _forward(), tandis que preDispatch() est (en partis) conçu pour : si la méthode _forward() est appelée pendant le preDispatch(), alors l'action d'origine ne sera pas appelée. Tu trouveras plus de détails ici : http://framework.zend.com/manual/en/...repostdispatch |
|
10
|
Copyright © 2000-2012 - www.developpez.com