ActionStack
Le plugin ActionStack vous permet de gérer une pile de requêtes en
opérant en postDispatch. Si un forward (un appel à une autre action) est
détecté, alors le plugin n'agira pas. Dans le cas contraire cependant, sa pile est analysée
(en ordre LIFO : dernier empilé, premier dépilé) et une nouvelle action est distribuée. Ce
plugin est commandé par l'aide d'action du même nom
ActionStack
Vous pouvez récupérer ce plugin grâce à
Zend_Controller_Front::getPlugin('Zend_Controller_Plugin_ActionStack').
Une fois l'objet retourné, voici les méthodes qui y sont proposées :
getRegistry() et setRegistry(). En interne,
ActionStack utilise Zend_Registry pour stocker
sa pile. Vous pouvez manipuler l'instance du registre utilisée grâce à ces
méthodes.
getRegistryKey() et setRegistryKey(). Ces méthodes
vous donnent accès à la clé utilisée dans le registre, pour stocker la pile
d'actions de ActionStack. Par défaut, il s'agit de
Zend_Controller_Plugin_ActionStack.
getStack() retourne la pile (entière) d'actions.pushStack() et popStack() contrôlent la pile.
popStack() supprime l'action la plus haute dans la pile (l'action à
venir), et vous la retourne. pushStack() rajoute une action sur la
pile. Vous devez la passer en paramètre donc.
La méthode forward(), elle, est directe : elle attend un objet de
requête qu'elle passe immédiatement au contrôleur frontal en redemandant un jeton de
distribution.