项目
在 ThinkPHP 中项目的概念,相当于一个独立的基于 ThinkPHP 框架的应用。项目有自己独立的入口文件、配置文件、应用类库及模板、缓存日志等。项目在入口文件中定义,包括项目名称和路径(如上面的例子)。
项目中的应用都通过入口文件来访问,一个网站由一个或多个项目组成。一个网站的典型部署如下:
ThinkPHP:ThinkPHP 核心包目录
Home:网站主应用项目目录
index.php:网站入口文件
……更多项目目录
第三方应用:BBS、SNS 等目录
提示
ThinkPHP 支持项目分组,项目分组让项目部署复杂些,但更方便也更符合逻辑,推荐使用项目分组(包括后台管理模块也可并入项目分组),具体可见《ThinkPHP 项目分组》。
项目目录结构
以前文的项目构建为例,在网站根目录下的文件及目录为:
ThinkPHP:ThinkPHP 框架包文件夹
index.php:项目入口文件
myapp:项目文件夹
Public:公共目录,存放 css,javascript 等公共文件,手工创建
第一次运行项目入口文件时,系统会自动生成项目目录结构,在 myapp 下:
Common:项目公共文件目录,一般放置项目的公共函数
Conf:项目配置目录,配置文件放该目录下
Lang:项目语言包目录(可选),作为多语言支持
Lib:项目类库目录,通常包括 Action、Behavior、Model、Widget 子目录
Tpl:项目模板目录,支持不同模板主题
Runtime:项目运行时目录,包括Cache(模板缓存)、Temp(数据缓存)、Data(数据目录)和Logs(日志文件)子目录
另一种项目配置
这种配置是将项目路径定义在当前目录(网站根目录)下,这种情况的好处是项目目录减少一层,但可能只适用于前文项目规划的第 1 种情况。
//入口文件
// 项目名称为空
define('APP_NAME', '');
// 项目路径为当前目录,不得为空
define('APP_PATH', './');
//开启调试模式
define('APP_DEBUG',true);
// 加载框架入口文件
require("./ThinkPHP/ThinkPHP.php");
?>
如此定义之后,原 myapp 目录下的文件夹,都被自动创建在了当前目录(入口文件 index.php 所在目录)。
参考阅读