1 <?xml version="1.0" encoding="UTF-8"?>
3 <sect3 id="zend.controller.plugins.standard.actionstack">
4 <title>ActionStack</title>
7 Плагин <code>ActionStack</code> позволяет управлять стеком запросов и
8 действует как плагин <code>postDispatch</code>. Если в текущем
9 объекте запроса уже задан переход на другое действие, то ничего не
10 делается. Иначе плагин проверяет свой стек, тянет самый
11 верхний элемент и производит переход на действие, заданное в этом
12 запросе. Стек обрабатывается в порядке "последний вошел - первый
13 вышел" (last-in-first-out, LIFO).
17 Вы можете извлечь плагин из фронт-контроллера в любой момент времени,
18 используя <code>Zend_Controller_Front::getPlugin('Zend_Controller_Plugin_ActionStack')</code>.
19 Имея объект плагина, вы можете использовать различные методы для
25 <code>getRegistry()</code> и <code>setRegistry()</code>.
26 Внутри себя <code>ActionStack</code> использует экземпляр
27 <classname>Zend_Registry</classname> для хранения стека. Вы можете с
28 помощью этих аксессоров заменить экземпляр реестра на другой или
33 <code>getRegistryKey()</code> и <code>setRegistryKey()</code>.
34 Они могут использоваться для определения того, какой ключ
35 реестра используется при извлечении стека. По умолчанию
36 используется ключ 'Zend_Controller_Plugin_ActionStack'.
40 <code>getStack()</code> позволяет извлечь стек действий целиком.
44 <code>pushStack()</code> и <code>popStack()</code> позволяют
45 соответственно добавлять и извлекать из стека.
46 <code>pushStack()</code> принимает объект запроса.
51 Дополнительный метод <code>forward()</code> ожидает объект запроса в
52 качестве аргумента и устанавливает состояние текущего объекта запроса во
53 фронт-контроллере в состояние переданного объекта запроса, помечая его
54 как необработанный диспетчером (что приводит к еще одной итерации цикла