ActionStack
Помощник ActionStack позволяет добавлять в стек запросы к плагину
фронт-контроллера, именуемуму
ActionStack.
Это позволяет создать очередь из задач, планируемых к выполнению в ходе данного запроса.
Помощник ActionStack позволяет добавлять задачи как путем указания
новых объектов запроса, так и набора действие - контроллер - модуль.
Вызов помощника ActionStack инициализирует плагин ActionStack
Вызов помощника ActionStack неявно регистрирует плагин
ActionStack, следовательно, нет необходимости
явным образом регистрировать плагин ActionStack
для использования данной функциональности.
Добавление задачи с указанием имен действия, контроллера и модуля
Зачастую, проще всего указать имена действия, контроллера и модуля
(и прочие параметры запроса) таким же образом, как и при вызове
Zend_Controller_Action::_forward():
_helper->actionStack('baz',
'foo',
'default',
array('bar' => 'baz'));
// Добавить вызов к /bar/bat
// (BarController::batAction())
$this->_helper->actionStack('bat', 'bar');
}
}
]]>Добавление задачи с использованием нового объекта запроса
Иногда появляется необходимость работать с запросом как с объектом
(в лучших традициях ООП). В таком случае объект запроса
можно передать помощнику ActionStack при его вызове.
getRequest();
// Использовать текущие контроллер и модуль;
// установить новое действие - baz
$request->setActionName('baz')
->setParams(array('bar' => 'baz'));
$this->_helper->actionStack($request);
// Добавить вызов к /bar/bat
// (BarController::batAction())
$request = clone $this->getRequest();
// Использовать текущий модуль; установить новый контроллер - bar
// и действие - bat
$request->setActionName('bat')
->setControllerName('bar');
$this->_helper->actionStack($request);
}
}
]]>