2011年8月24日水曜日

Zend Framework default module prefix

default moduleは標準的には
class IndexController extends Zend_Controller_Action
のようなクラス名でモジュール名プレフィックスが付かない。
application
 - modules
   - foo
    - controllers
    - views
    - ...
   - bar
    - controllers
    - views
    - ...
のような構成を取っていて、fooモジュールをデフォルトモジュールとしたい場合、
#application/configs/application.ini
resources.frontController.defaultModule = "foo"
のような設定を行うが、そのままだと、
class Foo_IndexController extends Zend_Controller_Action
のクラス名でディスパッチできない。

デフォルトモジュールにもプレフィックスを付けたい場合、
#application/configs/application.ini
resources.frontController.defaultModule = "foo"
resources.frontController.prefixDefaultModule = TRUE
とするとOK。

プレフィックス付いていた方が管理しやすいし、動的なデフォルトモジュール切り替えとかもやりやすい。

http://framework.zend.com/manual/ja/zend.controller.dispatcher.html
#Zend_Application_Resource_Frontcontroller
http://framework.zend.com/manual/ja/zend.application.available-resources.html
#概要

メモメモ。