ThinkPHP项目分组目录结构说明


项目分组目录结构

启用了项目分组后,目录结构有些细微变化,主要体现在 Lib/Action、Tpl模板、Runtime/Cache缓存、用户函数等目录结构上。

Lib/Action 目录

假设项目分组名称列表配置如下:

'APP_GROUP_LIST'=>'Home,Admin,User,Blog'

那么需要依次在 Lib/Action 目录下创建对应的项目分组目录,如下图所示:

ThinkPHP项目分组Lib/Action目录结构示例

而对各项目继承的公共基类文件,如 BaseAction.class.php 等,需要放在 Lib/Action 目录下,放于各自目录下将无效,哪怕这个继承的类文件只是由该项目单独继承。

空模块与空操作类文件也需要放置于 Lib/Action 目录下。

Tpl 模板目录

Tpl 模板目录下可以有多个模板主题,以默认主题 default 来说,同样需要创建对应的项目模板目录:

ThinkPHP项目分组Tpl/default目录结构示例

Tpl/default/Public 仍作为(default模板主题)全站公共模板目录,但对该目录内模板文件的包含有点语法上的改变:

<include file="Public@header" />

这样包含的就是 Tpl/default/Public/header.html 模板文件。

另外,对于系统内置的:

$this->success();
$this->error();

这两个操作对应的模板也应该放置于 Tpl/default/Public 公共目录下。

而在各个项目分组模板目录下,仍然会生成 Public 目录,项目单独的公共模板仍可以放于其内以供本项目共享,包含方式仍为:

<include file="Public:header" />

以 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

模板特殊字符替换

对于模板中的与项目有关的特殊替换字符(如 /Tpl/Home/default/Public)仍保持不变,即:

/Tpl/Home/default/Public 替换后的值仍为 /APP_NAME/Tpl/default/Public/,而与项目分组无关,其余的特殊替换字串亦如此。

关于模板特殊字符串替换参见:《ThinkPHP 模板特殊字符串替换

    ThinkPHP 项目分组配置
    ThinkPHP项目分组目录结构说明
    ThinkPHP项目分组中的模板输出
    ThinkPHP项目分组URL生成与URL访问
    ThinkPHP项目分组中的URL路由使用配置
    项目分组中的redirect重定向(跳转)

zgguan.com(it学习网) — 提供最好的 XHTML教程DIV+CSS教程JavaScript教程PHP教程ThinkPHP教程