<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect3 id="zend.controller.plugins.standard.actionstack">
    <title>ActionStack</title>

    <para>
        Le plugin <code>ActionStack</code> vous permet de gérer une pile de requêtes en
        opérant en <code>postDispatch</code>. 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
        <link linkend="zend.controller.actionhelpers.actionstack">ActionStack</link>
    </para>

    <para>
        Vous pouvez récupérer ce plugin grâce à
        <methodname>Zend_Controller_Front::getPlugin('Zend_Controller_Plugin_ActionStack')</methodname>.
        Une fois l'objet retourné, voici les méthodes qui y sont proposées&#160;:
    </para>

    <itemizedlist>
        <listitem>
            <para>
                <methodname>getRegistry()</methodname> et <methodname>setRegistry()</methodname>. En interne,
                <code>ActionStack</code> utilise <classname>Zend_Registry</classname> pour stocker
                sa pile. Vous pouvez manipuler l'instance du registre utilisée grâce à ces
                méthodes.
            </para>
        </listitem>
        <listitem>
            <para>
                <methodname>getRegistryKey()</methodname> et <methodname>setRegistryKey()</methodname>. 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
                <classname>Zend_Controller_Plugin_ActionStack</classname>.
            </para>
        </listitem>
        <listitem>
            <para><methodname>getStack()</methodname> retourne la pile (entière) d'actions.</para>
        </listitem>
        <listitem>
            <para>
                <methodname>pushStack()</methodname> et <methodname>popStack()</methodname> contrôlent la pile.
                <methodname>popStack()</methodname> supprime l'action la plus haute dans la pile (l'action à
                venir), et vous la retourne. <methodname>pushStack()</methodname> rajoute une action sur la
                pile. Vous devez la passer en paramètre donc.
            </para>
        </listitem>
    </itemizedlist>

    <para>
        La méthode <methodname>forward()</methodname>, 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.
    </para>
</sect3>
