ThinkPHP 项目目录结构


项目

在 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 种情况。

<?php
//入口文件

// 项目名称为空
define('APP_NAME', '');
// 项目路径为当前目录,不得为空
define('APP_PATH', './');
//开启调试模式
define('APP_DEBUG',true);
// 加载框架入口文件
require("./ThinkPHP/ThinkPHP.php");
?>

如此定义之后,原 myapp 目录下的文件夹,都被自动创建在了当前目录(入口文件 index.php 所在目录)。

参考阅读

  1. ThinkPHP 项目分组
    ThinkPHP 项目构建与入口文件概念
    ThinkPHP 项目目录结构
    ThinkPHP 开发流

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