一、单入口文件index.php。写法如下:
<?php
// 应用入口文件
// 检测PHP环境
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');
// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
define('APP_DEBUG',True);
// 定义运行时目录,在根目录下生成目录Runtime
define('RUNTIME_PATH','./Runtime/');
// 绑定Admin模块到当前入口文件
define('BIND_MODULE','Admin');
//
define('BUILD_CONTROLLER_LIST','Index,User,Menu');
define('BUILD_MODEL_LIST','User,Menu');
// 定义应用目录。如果你改变了项目目录(例如把Application
更改为Apps
),只需要在入口文件更改APP_PATH常量定义即可: define('APP_PATH','./Apps/');
define('APP_PATH','./Application/');
// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';
//include './ThinkPHP/ThinkPHP.php'; // 引入ThinkPHP入口文件
// 亲^_^ 后面不需要任何代码了 就是如此简单
?>
最终生成的应用目录结构如下:
www WEB部署目录(或者子目录)
├─index.php 应用入口文件
├─Apps 应用目录
├─Public 资源文件目录
├─Runtime 运行时目录
└─Think 框架目录
二、框架目录ThinkPHP的结构如下:
├─ThinkPHP 框架系统目录(可以部署在非web目录下面)
│ ├─Common 核心公共函数目录
│ ├─Conf 核心配置目录
│ ├─Lang 核心语言包目录
│ ├─Library 框架类库目录
│ │ ├─Think 核心Think类库包目录
│ │ ├─Behavior 行为类库目录
│ │ ├─Org Org类库包目录
│ │ ├─Vendor 第三方类库目录
│ │ ├─ ... 更多类库目录
│ ├─Mode 框架应用模式目录
│ ├─Tpl 系统模板目录
│ ├─LICENSE.txt 框架授权协议文件
│ ├─logo.png 框架LOGO文件
│ ├─README.txt 框架README文件
│ └─index.php 框架入口文件
三、目录安全文件
1、初次运行入口文件,会自动生成目录。在自动生成目录结构的同时,在各个目录下面我们还看到了index.html文件,这是ThinkPHP自动生成的目录安全文件。为了避免某些服务器开启了目录浏览权限后可以直接在浏览器输入URL地址查看目录,系统默认开启了目录安全文件机制,会在自动生成目录的时候生成空白的index.html
文件,当然安全文件的名称可以设置,例如你想给安全文件定义为default.html
可以在入口文件中添加: define('DIR_SECURE_FILENAME', 'default.html');
2、如果不想生成目录安全文件,添加:
define('BUILD_DIR_SECURE', false);即可。
自动生成目录结构如下:
Application
├─Common 应用公共模块
│ ├─Common 应用公共函数目录
│ └─Conf 应用公共配置文件目录
├─Home 默认生成的Home模块
│ ├─Conf 模块配置文件目录
│ ├─Common 模块函数公共目录
│ ├─Controller 模块控制器目录
│ ├─Model 模块模型目录
│ └─View 模块视图文件目录
├─Runtime 运行时目录
│ ├─Cache 模版缓存目录
│ ├─Data 数据目录
│ ├─Logs 日志目录
│ └─Temp 缓存目录
四、应用项目的结构
1、模块化的设计架构
Application 默认应用目录(可以设置)
├─Common 公共模块(不能直接访问)
├─Home 前台模块
├─Admin 后台模块
├─... 其他更多模块
├─Runtime 默认运行时目录(可以设置)
2、每个模块是相对独立的,其目录结构如下:
由于采用多层的MVC机制,除了Conf和Common目录外,每个模块下面的目录结构可以根据需要灵活设置和添加,所以并不拘泥于上面展现的目录
├─Module 模块目录
│ ├─Conf 配置文件目录
│ ├─Common 公共函数目录
│ ├─Controller 控制器目录
│ ├─Model 模型目录
│ ├─Logic 逻辑目录(可选)
│ ├─Service Service目录(可选)
│ ... 更多分层目录可选
│ └─View 视图目录