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
#概要

メモメモ。