在使用ThinkPHP3.2之前,先了解几个名词:
应用:基于同一个入口文件访问的项目我们称之为一个应用
模块:一个应用下面可以包含多个模块,每个模块在应用目录下面都是一个独立的子目录。
控制器:每个模块可以包含多个控制器,一个控制器通常体现为一个控制类
操作:每个控制器类可以包含多个操作方法,也可能是绑定的某个操作类,每个操作是URL访问的最小单元。
不清楚也没有关系,往下看就知道了...
1.下载版本
首先在官网上下载ThinkPHP版本(http://thinkphp.cn/down/framework.html),以下内容使用的是ThinkPHP3.2版本
2.准备环境
在开始之前,需要一个Web服务器和PHP运行环境,推荐使用继承开发环境WAMPServer(是一个集成了Apache,PHP和MySQL的开发套件,而且支持多个PHP版本、MySQL版和Apache版本的切换)
3.搭建环境
(1)找到WAMP的安装路径,在www文件下新建一个项目newApp,如(D:\Program Files\wamp\www\newApp);
(2)解压下载的ThinkPHP,拷贝ThinkPHP文件中的所有目录到项目newApp目录下,
在解压的文件中存在一个index.php文件,打开该文件,能看到如下的一行代码:
require './ThinkPHP/ThinkPHP.php';
这是引入ThinkPHP的入口文件,也是所有基于ThinkPHP开发应用的第一步。
另:在index.PHP中还可以看到其他的一些代码,包括"开启调试模式","定义应用目录"等,这些都有注释,很好理解。
(3)在浏览器中访问这个入口文件
http://localhost/newApp
等同于访问:http://localhost/newApp/index.php/Home/Index/index
一般Web服务器的默认文件是index.php,所有可以不需要在URL地址中加上index.php.运行后会看到欢迎页面。
4.目录结构
解压缩到newApp目录下面,初始的目录结构如下:
Application 应用目录 放入项目的模块代码 Public 资源文件目录 可以放项目的公共文件,如css,js,imags等 ThinkPHP 核心框架目录 index.php 入口文件 README.md README文件 仅用于说明,实际部署时可以删除
入口文件中的其他定义
一般不建议在入口文件中做过多的操作,但可以重新定义一些系统常量,入口文件中支持定义(建议)的一些系统常量包括:
THINK_PATH 框架目录 APP_PATH 应用目录 RUNTIME_PATH 应用运行时目录(可写) APP_DEBUG 应用调试模式(默认为false) STORAGE_TYPE 存储类型(默认为File) APP_MODE 应用模式(默认为common)
注:所有路径常量都必须以"/"结尾
自动创建目录
在第一次访问应用入口文件的时候,能看到欢迎界面,并自动生成一个默认的应用模块Home。接下来再看看原来空的Application目录下面,已经自动生成了公共模块Common,默认的Home模块和Runtime运行时目录结构:
Application Common Common 应用公共模块 Conf 应用公共函数目录 Home 默认生成的Home模块 Conf 模块配置文件目录 Common 模块函数公共目录 Controller 模块控制器目录 Model 模块模型目录 View 模块视图文件目录 Runtime 运行时目录 Cache 模版缓存目录 Data 数据目录 Logs 日志目录 Temps 缓存目录
目录安全文件
在自动生成目录结构的同时,在各个目录下面我们还看到了index.html文件,这是ThinkPHP自动生成的目录安全文件。
为了避免某些服务器开启了目录浏览权限后可以直接在浏览器输入URL地址查看目录,系统默认开启了目录安全文件机制,会在自动生成目录的时候生成空白的index.html文件,当然安全文件的名称可以设置。例:把安全文件定义为default.html可以在入口文件中添加:
define('DIR_SECURE_FILENAME','default.html');
如果觉得环境足够安全,不希望生成目录安全文件,可以在入口文件里面关闭目录安全文件的生成,代码如下:
define('BUILD_DIR_SECURE',false);
5.模块设计
3.2版本自带了一个应用目录结构,并且带了一个默认的应用入口文件,方便部署和测试,默认的应用目录是Application。通常情况下3.2无需使用多应用模式,因为大多数情况下,可以通过多模块化以及多入口的设计来解决应用的扩展需求。
多模块结构的应用目录如下所示:
Application 默认应用目录(可以设置) Common 公共模块(不能直接访问) Home 前台模块 Admin 后台模块 ... 其他更多模块 Runtime 默认运行时目录(可以设置)
每个模块都是相对独立的,模块下面的结构可以根据需要灵活设置和添加,如下示:
Admin 模块目录 Conf 配置文件目录 Common 公共函数目录 Controller 控制器目录 Model 模型目录 Logic 逻辑目录(可选) Service Service目录(可选) ... 更多分层目录可选 View 视图目录