ActionStack
Плагин ActionStack позволяет управлять стеком запросов и
действует как плагин postDispatch. Если в текущем
объекте запроса уже задан переход на другое действие, то ничего не
делается. Иначе плагин проверяет свой стек, тянет самый
верхний элемент и производит переход на действие, заданное в этом
запросе. Стек обрабатывается в порядке "последний вошел - первый
вышел" (last-in-first-out, LIFO).
Вы можете извлечь плагин из фронт-контроллера в любой момент времени,
используя Zend_Controller_Front::getPlugin('Zend_Controller_Plugin_ActionStack').
Имея объект плагина, вы можете использовать различные методы для
управления им.
getRegistry() и setRegistry().
Внутри себя ActionStack использует экземпляр
Zend_Registry для хранения стека. Вы можете с
помощью этих аксессоров заменить экземпляр реестра на другой или
извлечь его.
getRegistryKey() и setRegistryKey().
Они могут использоваться для определения того, какой ключ
реестра используется при извлечении стека. По умолчанию
используется ключ 'Zend_Controller_Plugin_ActionStack'.
getStack() позволяет извлечь стек действий целиком.
pushStack() и popStack() позволяют
соответственно добавлять и извлекать из стека.
pushStack() принимает объект запроса.
Дополнительный метод forward() ожидает объект запроса в
качестве аргумента и устанавливает состояние текущего объекта запроса во
фронт-контроллере в состояние переданного объекта запроса, помечая его
как необработанный диспетчером (что приводит к еще одной итерации цикла
диспетчеризации).