ThinkPHP的控制器就是模块类,通常位于项目的LibAction目录下面。类名就是模块名加上Action后缀,例如IndexAction类就表示了Index模块。控制器类必须继承系统的Action基础类,这样才能确保使用Action类内置的方法。
'APP_GROUP_LIST'=>'Admin,Home'
'DEFAULT_GROUP'=>'Home'
在我们启用项目分组之前,由于使用的两个项目,所以URL地址分别是:
采用分组模式前,URL地址
http://<serverName>/index.php/Index/index
http://<serverName>/Admin/index.php/Index/index
采用了分组模式后,URL地址变成:
http://<serverName>/index.php/Home/Index/index
如果Home是默认分组的话
http://<serverName>/index.php/Admin/Index/index
1. 模块分组
使用了模块分组后,如果需要实例化其他分组的模块类,可以使用:
A('Home.User');// 实例化Home分组的UserAction类
2. 模型分组
对于分组模式下面的Model类库是否需要分组完全看项目的需要,由于通常不同的分组对应的数据表是相同的,因此,我们推荐Model类库不分组存放,仍然保留之前的方式,无论是什么分组都公共调用Model类库。如果确实需要分组的话,仍然可以按照Action的方式,在Model目录下面创建Home和Admin目录,然后放入对应的Model类库,采用这种方式的话,模型类的调用方法有所区别。
如果模型类也分组存放,在使用D方法调用的时候需要使用:
$User = D('Home.User');// 实例化Home分组下面的UserModel类
3. 模板文件分组
模板文件的分组和Action类库分组也基本类似,在原来的模板主题目录下面增加一个分组目录即可。
例如:
Tpl/default/Home/Index/index.html
Tpl/default/Admin/User/index.html
相比之前的模板文件位置就是多了一个分组目录Home和Admin,如果觉得目录结构太深了,可以配置 TMPL_FILE_DEPR参数来减少目录层次,该参数默认是 “/”,如果改成
那么分组的模板文件就变成了
Tpl/default/Home/Index_index.html
Tpl/default/Admin/User_index.html
分组模块的概念,并不局限于将项目区分为前台和后台。你可以按自己所需类型,进行明确细致的区分,这样非常方便于项目管理和开发部署。
分组模块下面的具体模块和之前的模块功能没有任何区别,已有的URL和模块功能都可以很好的支持,例如空模块、空操作、伪静态等等。