2009年10月26日
Zend Framework アクションコントローラの処理の流れ (フロー)
最近 Zend Framework に手を出しはじめてカコイイWEBアプリ作れたらいいなと目論んでいるところです。
Zend Framework というか、Frameworkというものを使うのもこれが初めてのような気がします。
と言うわけで散々既出かもしれませんが、Zend Framework でのアクションコントローラの処理の流れを調べてみました。
結果から示すと次のようになっています。
と言う感じです。上の図でdammy[k-1]とか、dammy[k]と書いていますが、これはもちろんパースエラーになります。
さらに、コントローラはこのように
実際には次のようなコードを用いて調べました。
上のようなコントローラを作って動かしてみると、次のような出力を得ました。(実際はJSON形式で出力してましたがここでは割愛しました。)
Zend Framework というか、Frameworkというものを使うのもこれが初めてのような気がします。
と言うわけで散々既出かもしれませんが、Zend Framework でのアクションコントローラの処理の流れを調べてみました。
結果から示すと次のようになっています。
init() → preDispatch() → dammy1Action(){ _forward('dammy2Action'); } → postDispatch()
↓
init() → preDispatch() → dammy2Action(){ _forward('dammy3Action'); } → postDispatch()
↓
init() → preDispatch() → dammy3Action(){ _forward('dammy4Action'); } → postDispatch()
↓
:
:
init() → preDispatch() → dammy[k-1]Action(){ _forward('dammy[k]Action'); } → postDispatch()
↓
init() → preDispatch() → dammy[k]Action(){ _forward('dammy[k+1]Action'); } → postDispatch()
↓
:
:
と言う感じです。上の図でdammy[k-1]とか、dammy[k]と書いていますが、これはもちろんパースエラーになります。
さらに、コントローラはこのように
_forward($action)
で遷移する際にアクションクラスのプロパティを初期化します。実際には次のようなコードを用いて調べました。
<?php
require_once 'Zend/Controller/Action';
require_once MODEL_PATH . 'JsonResponseModel.php';
class FlowSurveyController extends Zend_Controller_Action
{
public function init() {
JsonResponseModel::addMessage('init');
}
public function preDispatch() {
JsonResponseModel::addMessage('preDispatch');
}
public function postDispatch() {
JsonResponseModel::addMessage('postDispatch');
}
public function dammy1Action() {
$this->_forward('dammy2');
JsonResponseModel::addMessage('dammy1');
}
public function dammy2Action() {
$this->_forward('dammy3');
JsonResponseModel::addMessage('dammy2');
}
public function dammy3Action() {
JsonResponseModel::addMessage('dammy3');
}
}
上のようなコントローラを作って動かしてみると、次のような出力を得ました。(実際はJSON形式で出力してましたがここでは割愛しました。)
"init",
"preDispatch",
"dammy1",
"postDispatch",
"init",
"preDispatch",
"dammy2",
"postDispatch",
"init",
"preDispatch",
"dammy3",
"postDispatch"
Posted by 匿名希望 at 05:14│Comments(0)