ThinkPHP项目分组目录结构说明
项目分组目录结构
启用了项目分组后,目录结构有些细微变化,主要体现在
Lib/Action、Tpl模板、Runtime/Cache缓存、用户函数等目录结构上。
Lib/Action
目录
假设项目分组名称列表配置如下:
'APP_GROUP_LIST'=>'Home,Admin,User,Blog'
那么需要依次在
Lib/Action 目录下创建对应的项目分组目录,如下图所示:
而对各项目继承的公共基类文件,如
BaseAction.class.php 等,需要放在 Lib/Action
目录下,放于各自目录下将无效,哪怕这个继承的类文件只是由该项目单独继承。
空模块与空操作类文件也需要放置于 Lib/Action
目录下。
Tpl 模板目录
Tpl 模板目录下可以有多个模板主题,以默认主题 default
来说,同样需要创建对应的项目模板目录:
Tpl/default/Public
仍作为(default模板主题)全站公共模板目录,但对该目录内模板文件的包含有点语法上的改变:
file="Public@header" />
这样包含的就是 Tpl/default/Public/header.html
模板文件。
另外,对于系统内置的:
$this->success();
$this->error();
这两个操作对应的模板也应该放置于
Tpl/default/Public 公共目录下。
而在各个项目分组模板目录下,仍然会生成 Public
目录,项目单独的公共模板仍可以放于其内以供本项目共享,包含方式仍为:
/>
以 Admin 为例说明,包含的就是 Tpl/default/Public/Admin/Public/header.html
模板文件。
Runtime/Cache 缓存目录
同模板目录一样,Runtime/Cache
缓存目录也会根据项目分组而自动生成对应的项目分组缓存目录。
用户函数
对于用户的独立函数文件,Common/common.php
仍是被各项目分组公用的。如果要单独为某个项目分组提供独有的函数文件,需要在 Common 创建对应的目录。以 Admin
分组项目为例,Common/Admin/function.php 则为 Admin
分组项目独有的函数文件。
配置文件目录
各分组项目贡献配置目录下的 config.php
文件里的配置信息,要为各分组配置单独的个性化配置文件,需要在配置目录下创建对应的目录及配置文件,如:
Conf/Admin/config.php
更多关于项目分组配置参见《ThinkPHP
项目分组配置》。
模型类目录
对于模型类,也可以进行分组管理,如:
$user =
D('Admin.UserView');
对应的就是 Lib/Model/Admin/UserViewmodel.class.php
文件。
实际上 Model 下的目录跟项目分组没有必然的对应关系,使用 D('Test.UserView') 的时候,系统会自动对应
Lib/Model/Test/UserViewmodel.class.php 文件,而不关心 Test
是否是一个项目分组。
语言定义目录
系统语言目录也可以根据项目分组来管理。如 Admin
分组,其对应的语言文件则为:
Lang/Admin/lang.php
模板特殊字符替换
对于模板中的与项目有关的特殊替换字符(如
../Public)仍保持不变,即:
../Public 替换后的值仍为
/APP_NAME/Tpl/default/Public/,而与项目分组无关,其余的特殊替换字串亦如此。
关于模板特殊字符串替换参见:《ThinkPHP
模板特殊字符串替换》