ここでZF2の質問。
ZF2のイベント駆動型のものが好きです。
これが私の目標です。
データベーステーブルを使用してセッションを開始したいのですが、何らかの理由でデータベース接続がない場合にエラー/エラーテンプレートにスローされます。
これを行うことについて私が考えたいくつかの方法があります。アプリケーションの「route」イベントにアタッチして、ルートマッチングが発生する直前、または直後にセッションを開始できます。ただし、Mvc \ Application.phpファイルにはTRYキャッチがないため、ここでそれを行う場所ではないと思います。
ただし、呼び出されているCONTROLLERのディスパッチメソッドの周囲にtrycatchブロックがあります。そして、コントローラーには、それがトリガーする独自の「ディスパッチ」イベントがあることに気づきました。
したがって、他の可能性は、この内部コントローラーディスパッチイベントにアタッチし、コントローラーのアクションメソッドが実際に実行される前に、つまりセッションが必要になる前に、セッションをセットアップする必要があることです。
では、どうすればこの内部の「ディスパッチ」メソッドに接続できますか?または、他にどのようにすれば、データベース接続の例外が例外処理なしで通常のphpエラーとして吐き出されるのではなく、私の素敵な例外ページに移動するようにすることができますか?
これはイベントが提供するはずの機能であるため、コントローラーにはこれ以上init()メソッドはありません。
お手伝いありがとう。
参考:「bootstrap」、「loadmodules」、「loadmodules.post」などのさまざまなイベントにアタッチしてみました。添付のメソッドで行ったのは、例外をスローして、自分が持っている素敵なエラーページが表示されるかどうかを確認することだけでしたが、運がありませんでした。私はそれをデバッグすることになり、この内部コントローラーの「ディスパッチ」メソッドを見つけました。コントローラは、独自の内部イベントマネージャを取得します。少なくとも、それは私がデバッグから収集したものです。私は間違っているかもしれないので、訂正してください!