| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <sect3 id="zend.controller.plugins.standard.actionstack">
- <title>ActionStack</title>
- <para>
- Плагин <code>ActionStack</code> позволяет управлять стеком запросов и
- действует как плагин <code>postDispatch</code>. Если в текущем
- объекте запроса уже задан переход на другое действие, то ничего не
- делается. Иначе плагин проверяет свой стек, тянет самый
- верхний элемент и производит переход на действие, заданное в этом
- запросе. Стек обрабатывается в порядке "последний вошел - первый
- вышел" (last-in-first-out, LIFO).
- </para>
- <para>
- Вы можете извлечь плагин из фронт-контроллера в любой момент времени,
- используя <code>Zend_Controller_Front::getPlugin('Zend_Controller_Plugin_ActionStack')</code>.
- Имея объект плагина, вы можете использовать различные методы для
- управления им.
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getRegistry()</code> и <code>setRegistry()</code>.
- Внутри себя <code>ActionStack</code> использует экземпляр
- <classname>Zend_Registry</classname> для хранения стека. Вы можете с
- помощью этих аксессоров заменить экземпляр реестра на другой или
- извлечь его.
- </para></listitem>
- <listitem><para>
- <code>getRegistryKey()</code> и <code>setRegistryKey()</code>.
- Они могут использоваться для определения того, какой ключ
- реестра используется при извлечении стека. По умолчанию
- используется ключ 'Zend_Controller_Plugin_ActionStack'.
- </para></listitem>
- <listitem><para>
- <code>getStack()</code> позволяет извлечь стек действий целиком.
- </para></listitem>
- <listitem><para>
- <code>pushStack()</code> и <code>popStack()</code> позволяют
- соответственно добавлять и извлекать из стека.
- <code>pushStack()</code> принимает объект запроса.
- </para></listitem>
- </itemizedlist>
- <para>
- Дополнительный метод <code>forward()</code> ожидает объект запроса в
- качестве аргумента и устанавливает состояние текущего объекта запроса во
- фронт-контроллере в состояние переданного объекта запроса, помечая его
- как необработанный диспетчером (что приводит к еще одной итерации цикла
- диспетчеризации).
- </para>
- </sect3>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|