项目分组概述
项目分组是 ThinkPHP
一个重要机制,项目分组功能可以把以往的多项目合并到一个项目中去,对于公共的文件可以重用,但每个分组又可以有自己独立的配置文件、公共文件、语言包等。
以一个普通的网站为例,如果不采用项目分组,那么通常是将网站前台(提供给用户浏览部分)作为一个项目。而网站的后台管理部分,可能有独立的配置文件,CSS文件及模板等,因此作为另一个项目来管理。但实际上这两个项目都是网站的内容,他们之间可以共享一些内容如数据库配置文件甚至一些模型类和跨项目操作等。
项目分组就很好的解决了同一个系统下各项目之间的共性与个性问题。
项目分组配置
在系统配置文件(Config/config.php)里面进行简单的项目分组配置即可开启项目分组。
与项目分组模式有关的配置有五个:配置选项说明例子或建议
- APP_GROUP_LIST 项目分组所有名称列表,若不设置则表示不启用项目分组模式 'APP_GROUP_LIST'=>'Home,Admin,User,Blog',
- DEFAULT_GROUP 默认的项目分组名称,系统默认是 Home 'DEFAULT_GROUP' =>'Home',
- APP_GROUP_DEPR 项目分组之间的分割符,默认是 . (点),用于 A函数 D函数 和 路由配置中的分隔 建议默认
- TMPL_FILE_DEPR 模板文件中模块与操作之间的分割符,默认是 / ,只对项目分组部署有效 建议默认,可使用 U 方法自动生成 URL
- VAR_GROUP 获取项目分组名称的变量,默认是 g index.php?g=Admin&m=Index&a=edit,建议默认
当 TMPL_FILE_DEPR 配置为 _ 时,以 Admin 分组 Index 模块
add
操作来说,其对应的模板文件由原来的:
Tpl/default/Admin/Index/add.html
变更为:
Tpl/default/Admin/Index_add.html
通过这个配置,使模板目录结构减少了一层目录。
提示:TMPL_FILE_DEPR
同时也是语言文件中分组语言定义与语言文件之间的分隔符。
以上配置选项中,要启用分组,APP_GROUP_LIST
必须设置,其他选项则根据实际情况加以配置。
项目分组个性配置
如果要为分组的项目添加独自的个性化配置,可以在配置目录 Conf
下,建立与项目组名称相同的目录(目录命名格式是:分组名称的首字母大写+其余字母小写的形式),并在目录内定义一个 config.php 配置文件。如 Admin
项目的个性配置文件:
Conf/Admin/config.php
当分组名称的目录下有定义 config.php
文件时,每次访问该分组,系统会自动加载分组的独立配置并覆盖公共配置中相同选项的设定。
参考阅读
ThinkPHP 系统配置