命名规范
基本命名规范
ThinkPHP遵循PSR-2命名规范以及PSR-4自动加载规范,并注意如下规范:
类和文件命名
- 类(包括接口、Trait)文件名和类名保持一致,并且使用首字母大写的驼峰命名;
- 函数文件、配置文件、路由定义文件等文件名使用小写规范;
- 无论类还是普通文件都使用.php后缀;
- 目录名统一使用小写规范,并且使用单数规范;
- 模板文件使用小写规范;
配置和变量命名
- 配置参数名统一使用小写规范;
- 常量定义统一使用大写规范;
- 环境变量定义统一使用大写规范;
函数和类、属性命名
- 函数的命名使用小写字母和下划线(小写字母开头)的方式,例如
get_client_ip; - 方法的命名使用驼峰法(首字母小写),例如
getUserName; - 属性的命名使用驼峰法(首字母小写),例如
tableName、instance; - 特例:以双下划线
__打头的函数或方法作为魔术方法,例如__call和__callStatic;
数据表命名
数据表和字段采用小写加下划线方式命名,例如 think_user表和 user_name字段,禁止使用驼峰、中文或者拼音作为数据表及字段命名。
字段规范
- 主键统一使用
id; - 外键统一使用
resource_id形式(例如user_id); - 模型数据字段统一使用小写+下划线命名,和数据表字段规范一致;
- 数据表统一添加系统时间字段(
create_time和update_time),并使用datetime类型; - 使用软删除并添加时间字段
delete_time,类型和系统时间字段保持一致; - 模型类应该继承一个统一的公共类,便于调整和统一设置;
- 模型类应当通过定义
autoWriteTimestamp属性明确时间字段类型;
查询规范
- 对于使用了SQL函数的用法,使用
fieldRaw、orderRaw和whereRaw/whereExp替代field、order和where用法。 - 不要在WEB访问的时候进行大量数据操作,容易超时的数据处理应当在命令行下通过创建指令完成。
规范部署
请务必把你的WEB根目录指向public目录而不是应用根目录,并且不要随意更改入口文件的位置。public目录下面不要放除了入口文件和资源文件以外的其它应用文件。
统一IDE及代码规范配置、插件
项目团队应当尽量使用统一的IDE作为开发工具,并规范一致的代码规范配置项,如果使用的第三方代码规范及自动完成插件。如果团队成员较多而无法完全统一,最低限度,项目代码风格必须遵循PSR-1和PSR-2规范。
操作方法
操作方法的命名规范
小写字母开头的驼峰命名。虽然,你用小写+下划线的命名方式也能访问,但是尽量遵循 PSR-2 规范,这是一个基本的开发素质问题。 操作名不能使用php关键字,例如如果要定义一个list方法
php
class Blog extends Controller
{
public function list()
{
return '执行列表操作';
}
}代码规范
类型约束
PHP7的强类型特性。开启严格模式。
只需要在你的PHP文件开头增加下面一行代码。
php
<?php
declare (strict_types = 1);声明前不允许出现其他php代码,例如:namespace、use、require、include等。
请求变量过滤
永远不要相信用户的输入
如果你需要对所有数据进行处理,可以设置全局的过滤方法。对不同的应用需求设置default_filter过滤规则(默认没有任何过滤规则),常见的安全过滤函数包括stripslashes、htmlentities 、htmlspecialchars和strip_tags等,请根据业务场景选择最合适的过滤方法。
