# 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.