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

    <para>
        Das <emphasis>ActionStack</emphasis> Plugin erlaubt es einen Stack von Anfragen zu
        verwalten, und operiert als <emphasis>postDispatch</emphasis> Plugin. Wenn eine
        Weiterleitung (z.B. ein Aufruf zu einer anderen Aktion) bereits im aktuellen Anfrage Objekt
        gefunden wurde, führt es nicht durch. Trotzdem, wenn nicht, prüft es seinen Stack und
        entfernt den obersten Teil von Ihm und leitet diesen zu der Aktion weiter die in dieser
        Anfrage spezifiziert ist. Der Stack wird in der <acronym>LIFO</acronym> Reihenfolge
        bearbeitet.
    </para>

    <para>
        Das Plugin kann jederzeit vom Front Controller empfangen werden indem
        <methodname>Zend_Controller_Front::getPlugin('Zend_Controller_Plugin_ActionStack')</methodname>
        verwendet wird. Sobald das Plugin Objekt vorliegt, gibt es eine Anzahl von Mechanisman die
        verwendet werden können, um es zu manipulieren.
    </para>

    <itemizedlist>
        <listitem>
            <para>
                <methodname>getRegistry()</methodname> und <methodname>setRegistry()</methodname>.
                Intern verwendet <emphasis>ActionStack</emphasis> eine Instanz von
                <classname>Zend_Registry</classname> um den Stack zu speichern. Diese kann durch
                eine andere Registry Instanz ersetzt werden oder dieselbe mit diesen
                Zugriffsmethoden empfangen.
            </para>
        </listitem>

        <listitem>
            <para>
                <methodname>getRegistryKey()</methodname> und
                <methodname>setRegistryKey()</methodname>. Diese können verwendet werden um
                anzuzeigen welcher Registryschlüssel verwendet wird wenn der Stack herausgenommen
                wird. Der Standardwert ist
                '<classname>Zend_Controller_Plugin_ActionStack</classname>'.
            </para>
        </listitem>

        <listitem>
            <para>
                <methodname>getStack()</methodname> erlaubt es den Stack von Aktionen in seiner
                Ganzheit zu empfangen.
            </para>
        </listitem>

        <listitem>
            <para>
                <methodname>pushStack()</methodname> und <methodname>popStack()</methodname>
                erlauben es dem Stack etwas hinzuzufügen und auch zu entfernen.
                <methodname>pushStack()</methodname> akzeptiert ein Anfrageobjekt.
            </para>
        </listitem>
    </itemizedlist>

    <para>
        Eine zusätzliche Methode, <methodname>forward()</methodname>, erwartet ein Anfrageobjekt,
        und setzt den Status des aktellen Anfrageobjektes im Front Controller auf den Status des
        angegebenen Anfrageobjekts, und markiert dieses als unerledigt (das forciert einen weiteren
        Durchlauf der Dispatch Schleife).
    </para>
</sect3>
