一. 获取ThinkPHP
官方网站(http://thinkphp.cn)
二. 环境要求
PHP5.3以上版本(注意:PHP5.3dev版本和PHP6均不支持)
三. 目录结构
├─ThinkPHP 框架系统目录(可以部署在非web目录下面)
│ ├─Common 核心公共函数目录
│ ├─Conf 核心配置目录
│ ├─Lang 核心语言包目录
│ ├─Library 框架类库目录
│ │ ├─Think 核心Think类库包目录
│ │ ├─Behavior 行为类库目录
│ │ ├─Org Org类库包目录
│ │ ├─Vendor 第三方类库目录
│ │ ├─ ... 更多类库目录
│ ├─Mode 框架应用模式目录
│ ├─Tpl 系统模板目录
│ ├─LICENSE.txt 框架授权协议文件
│ ├─logo.png 框架LOGO文件
│ ├─README.txt 框架README文件
│ └─index.php 框架入口文件
四. 入口文件
如果你调整了框架核心目录的位置或者目录名,只需要这样修改:
define('APP_PATH','./Application/');
define('THINK_PATH',realpath('../Think').'/');
require THINK_PATH.'ThinkPHP.php';
常量 | 描述 |
---|---|
THINK_PATH | 框架目录 |
APP_PATH | 应用目录 |
RUNTIME_PATH | 应用运行时目录(可写) |
APP_DEBUG | 应用调试模式 (默认为false) |
STORAGE_TYPE | 存储类型(默认为File) |
APP_MODE | 应用模式(默认为common) |
在自动生成目录结构的同时,在各个目录下面我们还看到了index.html文件,这是ThinkPHP自动生成的目录安全文件。
为了避免某些服务器开启了目录浏览权限后可以直接在浏览器输入URL地址查看目录,系统默认开启了目录安全文件机制,会在自动生成目录的时候生成空白的index.html
文件,当然安全文件的名称可以设置,例如你想给安全文件定义为default.html
可以在入口文件中添加:
define('DIR_SECURE_FILENAME', 'default.html');
define('APP_PATH','./Application/');
require './ThinkPHP/ThinkPHP.php';
如果你的环境足够安全,不希望生成目录安全文件,可以在入口文件里面关闭目录安全文件的生成,例如:
define('BUILD_DIR_SECURE', false);
五. 开发规范
- 类文件都是以.class.php为后缀(这里是指的ThinkPHP内部使用的类库文件,不代表外部加载的类库文件),使用驼峰法命名,并且首字母大写,例如
DbMysql.class.php
; - 类的命名空间地址和所在的路径地址一致,例如
HomeControllerUserController
类所在的路径应该是Application/Home/Controller/UserController.class.php
; - 确保文件的命名和调用大小写一致,是由于在类Unix系统上面,对大小写是敏感的(而ThinkPHP在调试模式下面,即使在Windows平台也会严格检查大小写);
- 类名和文件名一致(包括上面说的大小写一致),例如
UserController
类的文件命名是UserController.class.php
, InfoModel类的文件名是InfoModel.class.php
, 并且不同的类库的类命名有一定的规范; - 函数、配置文件等其他类库文件之外的一般是以
.php
为后缀(第三方引入的不做要求); - 函数的命名使用小写字母和下划线的方式,例如
get_client_ip
; - 方法的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如
getUserName
,_parseType
,通常下划线开头的方法属于私有方法; - 属性的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如
tableName
、_instance
,通常下划线开头的属性属于私有属性; - 以双下划线“__”打头的函数或方法作为魔法方法,例如
__call
和__autoload
; - 常量以大写字母和下划线命名,例如
HAS_ONE
和MANY_TO_MANY
; - 配置参数以大写字母和下划线命名,例如
HTML_CACHE_ON
; - 语言变量以大写字母和下划线命名,例如
MY_LANG
,以下划线打头的语言变量通常用于系统语言变量,例如_CLASS_NOT_EXIST_
; - 对变量的命名没有强制的规范,可以根据团队规范来进行;
- ThinkPHP的模板文件默认是以
.html
为后缀(可以通过配置修改); - 数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如
think_user
表和user_name
字段是正确写法,类似_username
这样的数据表字段可能会被过滤。
六. 配置
//项目配置文件
return array(
'DEFAULT_MODULE' => 'Index', //默认模块
'URL_MODEL' => '2', //URL模式
'SESSION_AUTO_START' => true, //是否开启session
'USER_CONFIG' => array(
'USER_AUTH' => true,
'USER_TYPE' => 2,
),
//更多配置参数
//...
);
惯例配置->位于
ThinkPHP/Conf/convention.php
应用配置->
Application/Common/Conf/config.php
模式配置->
Application/Common/Conf/config_应用模式名称.php
(仅在运行该模式下面才会加载)。
调试配置->位于
ThinkPHP/Conf/debug.php
Application/Common/Conf/debug.php
状态配置->
define('APP_STATUS','office'); 位于
Application/Common/Conf/office.php
模块配置->位于
Application/当前模块名/Conf/config.php
扩展配置->
'LOAD_EXT_CONFIG' => 'user,db' 自定义配置文件
动态配置->
C('参数名称','新的参数值');
获取已经设置的参数值:C('参数名称')
批量配置:$config = array('WEB_SITE_TITLE'=>'ThinkPHP','WEB_SITE_DESCRIPTION'=>'开源PHP框架');
C($config);