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();
// コントローラやモジュールは指定せず、現在の値を使用します
$request->setActionName('baz')
->setParams(array('bar' => 'baz'));
$this->_helper->actionStack($request);
// /bar/bat のコール
// (BarController::batAction()) を追加します
$request = clone $this->getRequest();
// モジュールは指定せず、現在の値を使用します
$request->setActionName('bat')
->setControllerName('bar');
$this->_helper->actionStack($request);
}
}
]]>