# 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()` ожидает объект запроса в качестве аргумента и устанавливает состояние текущего объекта запроса во фронт-контроллере в состояние переданного объекта запроса, помечая его как необработанный диспетчером (что приводит к еще одной итерации цикла диспетчеризации).