【続】initializeでfalseが返されたら
表題の件は前回の続編だが、予想通りでした。
mojavi-all-classes.phpのExecutionFilterクラスの中の以下の記述で
—
if ($action->initialize($controller, $request, $user))
else節を加えて「$controller->forward(ACTION,MODULE)」を書き足すことによって希望のモジュール/アクションに遷移させることができると判明。
ここでさらなる野望。
これまではデータベースへの接続をベースとなるアクションclassを作成し、そのinitialize関数の中でおこなってきたので、データベース接続が失敗したときのエラー表示を美しくしたかったのだけれど、少し欲求が増えた。ぜひともこれをFilterで実現したい。
つまりFilterでデータベースの初期化をおこない、初期化に失敗した場合に単にエラーメッセージを表示するだけでなく、カスタマイズされた画面中にエラーを表示させたい、ということ。
いろいろ調べたけれど今のところわからない。どうすれば実現できるのか、わかる人がいれば是非教えて欲しい。
あ、簡単だった。mojavi-all-classes.phpを修正するとかじゃなくて、作成したFilterクラスでエラーを発生した部分に以下の記述を加えたら難なく遷移させることができた。
—
$controller->forward(MODULE,ACTION);
これで大抵のことはできそうな気がしてきた。
せっかくここまで理解してきたのに、mojaviを捨てるのは惜しい気がする。でもやっぱりここは大本命「Zend Framework」をやるべき!、という気がしてならない。