如果我们要建立一个多模块的的app的话,那么建议在app下面新建一个文件夹modules来存放不同的模块
并在每个模块下面建立 controllers models views 的文件夹
包括一个layouts文件夹,(用来存放layout文件)
在application.ini中添加
resources.frontController.moduleDirectory = APPLICATION_PATH “/modules”
目的是为 前端控制器 frontController 添加模块文件夹
如果有多个模块文件夹可以使用这种方式来载入多个
resources.frontController.moduleDirectory[] = APPLICATION_PATH “/modules”
另外还有两个设定参数需要介绍
resources.frontController.params.prefixDefaultModule = true ;
这个用来规定模块的类名前面是否要带着模块名的前缀,
可能是为了好区分吧比如说在 admin模块的 controllers文件夹中有indexController.php,
如果这个参数为 false的情况下,里面的控制器类的类名为 IndexController
如果为true的情况下 里面的类名为 Admin_IndexController
resources.frontController.defaultmodule = “admin”
这个参数规定了在默认情况下不输入模块名时要使用的模块名称
加入这些之后,在url中加入模块名称应该就可以访问了,但是,使用的是 application根目录下的layouts、scripts里面的layout.phtml
如果是多个模块,比如说front模块和admin模块,分别负责前台显示和后台管理的话,他们用到的 layout必然是不一样的。
所以还需要设置每个模块的layout ,我们把每个模块的layout放在这个模块的文件夹下面。
在application.ini中做如下的设置
admin.resources.layout.layoutPath = APPLICATION_PATH “/modules/admin/layouts/scripts”
layout文件的名称是无法按照模块来改名的,每个模块都使用
resources.layout.layout = “layout”规定的layout这个名称,可以修改,如果修改,则整个application的各个模块都会修改。
在设置完这些之后 layout也会默认先使用 模块中views里面的
已经搞定