| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <?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 :
- </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>
|