Zend Framework - フロントコントローラ記述例

HOME | TOP

■ フロントコントローラのシンプル例


すべてのリクエストを受け付けるフロントコントローラの例です。

フロントコントローラ例 [htdocs/index.php]

まず始めにgetInstance()でインスタンスを取得しています。
このインスタンスはウェブのリクエスト〜レスポンスまでの接続数が常に1つなので、何度取得しても内部で最初に作成された同じインスタンスが返されることになります。(シングルトン)


setControllerDirectory()メソッドを使ってアクションコントローラ置き場を教えています。 デフォルトの置き場が特に決まってないので、ここで教えておかないと次のdispatch()メソッド内で行われるディスパッチ(アクションメソッドをコール)ができないことになってしまいます。


dispatch()メソッド内ではあらゆることが行われています。
まず最初にルーティングで「コントローラ名」「アクション名」を決定して、ディスパッチでそれに対応したアクションコントローラのメソッドがコールされてそこでメインとなる処理が実行されます。
それが終わればビューによる描画が実行されて結果をレスポンスオブジェクトに格納します。
最後にレスポンスを行っています。

しかしこのdispatch()だけの記述ではそれが埋没して流れが見えにくくてよくない気はします。
それどころか更にシンプルなZend_Controller_Front::run('/path/to/controllers')だけの記述もできてしまいますが、これはいくらなんでもと思ってしまいます。


2010(C)Mingw