|
|
@@ -1,38 +1,36 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!-- EN-Revision: 20765 -->
|
|
|
<!-- Reviewed: no -->
|
|
|
<sect3 id="zend.controller.actionhelpers.actionstack">
|
|
|
<title>ActionStack</title>
|
|
|
|
|
|
<para>
|
|
|
- Помощник <code>ActionStack</code> позволяет помещать в стек запросы к
|
|
|
- плагину
|
|
|
- <link linkend="zend.controller.plugins.standard.actionstack">ActionStack</link>
|
|
|
- фронт-контроллера, помогая эффективно создавать очереди действий,
|
|
|
- выполняемых в течение запроса. Этот помощник позволяет добавлять
|
|
|
- действия посредством установки новых объектов запросов или наборов
|
|
|
- действие/контроллер/модуль.
|
|
|
+ Помощник <emphasis>ActionStack</emphasis> позволяет добавлять в стек запросы к плагину
|
|
|
+ фронт-контроллера, именуемуму
|
|
|
+ <link linkend="zend.controller.plugins.standard.actionstack">ActionStack</link>.
|
|
|
+ Это позволяет создать очередь из задач, планируемых к выполнению в ходе данного запроса.
|
|
|
+ Помощник <emphasis>ActionStack</emphasis> позволяет добавлять задачи как путем указания
|
|
|
+ новых объектов запроса, так и набора действие - контроллер - модуль.
|
|
|
</para>
|
|
|
|
|
|
<note>
|
|
|
<title>Вызов помощника ActionStack инициализирует плагин ActionStack</title>
|
|
|
|
|
|
<para>
|
|
|
- При вызове помощника <code>ActionStack</code> неявным образом
|
|
|
- регистрируется плагин <code>ActionStack</code>. Это значит, что нет
|
|
|
- необходимости явным образом регистрировать плагин
|
|
|
- <code>ActionStack</code> для того, чтобы использовать его
|
|
|
- функционал.
|
|
|
+ Вызов помощника <emphasis>ActionStack</emphasis> неявно регистрирует плагин
|
|
|
+ <emphasis>ActionStack</emphasis>, следовательно, нет необходимости
|
|
|
+ явным образом регистрировать плагин <emphasis>ActionStack</emphasis>
|
|
|
+ для использования данной функциональности.
|
|
|
</para>
|
|
|
</note>
|
|
|
|
|
|
<example id="zend.controller.actionhelpers.actionstack.simple">
|
|
|
- <title>Добавление задачи с использованием имен действия, контроллера и модуля</title>
|
|
|
+ <title>Добавление задачи с указанием имен действия, контроллера и модуля</title>
|
|
|
|
|
|
<para>
|
|
|
- Зачастую наиболее простым способом будет указание действия,
|
|
|
- контроллера и модуля (и необязательных параметров запроса), почти
|
|
|
- так же, как если бы вы вызывали
|
|
|
- <code>Zend_Controller_Action::_forward()</code>:
|
|
|
+ Зачастую, проще всего указать имена действия, контроллера и модуля
|
|
|
+ (и прочие параметры запроса) таким же образом, как и при вызове
|
|
|
+ <methodname>Zend_Controller_Action::_forward()</methodname>:
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -40,30 +38,29 @@ class FooController extends Zend_Controller_Action
|
|
|
{
|
|
|
public function barAction()
|
|
|
{
|
|
|
- // Добавление двух действий в стек
|
|
|
- // Добавление вызова к /foo/baz/bar/baz
|
|
|
- // (FooController::bazAction() с переменной запроса bar == baz)
|
|
|
+ // Добавить две задачи в стек
|
|
|
+ // Добавить вызов к /foo/baz/bar/baz
|
|
|
+ // (FooController::bazAction() со следующими переменными в запросе: bar = baz)
|
|
|
$this->_helper->actionStack('baz',
|
|
|
'foo',
|
|
|
'default',
|
|
|
array('bar' => 'baz'));
|
|
|
|
|
|
- // Добавление вызова к /bar/bat
|
|
|
+ // Добавить вызов к /bar/bat
|
|
|
// (BarController::batAction())
|
|
|
$this->_helper->actionStack('bat', 'bar');
|
|
|
}
|
|
|
}
|
|
|
]]></programlisting>
|
|
|
-
|
|
|
</example>
|
|
|
|
|
|
<example id="zend.controller.actionhelpers.actionstack.simple2">
|
|
|
- <title>Добавление задачи с использованием объекта запроса</title>
|
|
|
+ <title>Добавление задачи с использованием нового объекта запроса</title>
|
|
|
|
|
|
<para>
|
|
|
- Иногда имеет смысл использовать объект запроса, что более
|
|
|
- соответствует духу ООП. Объект запроса тоже можно передавать
|
|
|
- помощнику <code>ActionStack</code>.
|
|
|
+ Иногда появляется необходимость работать с запросом как с объектом
|
|
|
+ (в лучших традициях <acronym>ООП</acronym>). В таком случае объект запроса
|
|
|
+ можно передать помощнику <emphasis>ActionStack</emphasis> при его вызове.
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -71,21 +68,22 @@ class FooController extends Zend_Controller_Action
|
|
|
{
|
|
|
public function barAction()
|
|
|
{
|
|
|
- // Добавление двух действий в стек
|
|
|
- // Добавление вызова к /foo/baz/bar/baz
|
|
|
- // (FooController::bazAction() с переменной запроса bar == baz)
|
|
|
+ // Добавить две задачи в стек
|
|
|
+ // Добавить вызов к /foo/baz/bar/baz
|
|
|
+ // (FooController::bazAction() со следующими
|
|
|
+ // переменными в запросе: bar = baz)
|
|
|
$request = clone $this->getRequest();
|
|
|
- // Не устанавливайте контроллер и модуль;
|
|
|
- // используются текущие значения
|
|
|
+ // Использовать текущие контроллер и модуль;
|
|
|
+ // установить новое действие - baz
|
|
|
$request->setActionName('baz')
|
|
|
->setParams(array('bar' => 'baz'));
|
|
|
$this->_helper->actionStack($request);
|
|
|
|
|
|
- // Add call to /bar/bat
|
|
|
+ // Добавить вызов к /bar/bat
|
|
|
// (BarController::batAction())
|
|
|
$request = clone $this->getRequest();
|
|
|
- // Не устанавливайте модуль;
|
|
|
- // используется текущиее значение
|
|
|
+ // Использовать текущий модуль; установить новый контроллер - bar
|
|
|
+ // и действие - bat
|
|
|
$request->setActionName('bat')
|
|
|
->setControllerName('bar');
|
|
|
$this->_helper->actionStack($request);
|
|
|
@@ -96,4 +94,4 @@ class FooController extends Zend_Controller_Action
|
|
|
</sect3>
|
|
|
<!--
|
|
|
vim:se ts=4 sw=4 et:
|
|
|
--->
|
|
|
+-->
|