Skip to content

命名规范

基本命名规范

ThinkPHP遵循PSR-2命名规范以及PSR-4自动加载规范,并注意如下规范:

类和文件命名

  • 类(包括接口、Trait)文件名和类名保持一致,并且使用首字母大写的驼峰命名;
  • 函数文件、配置文件、路由定义文件等文件名使用小写规范;
  • 无论类还是普通文件都使用.php后缀;
  • 目录名统一使用小写规范,并且使用单数规范;
  • 模板文件使用小写规范;

配置和变量命名

  • 配置参数名统一使用小写规范;
  • 常量定义统一使用大写规范;
  • 环境变量定义统一使用大写规范;

函数和类、属性命名

  • 函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 get_client_ip
  • 方法的命名使用驼峰法(首字母小写),例如 getUserName
  • 属性的命名使用驼峰法(首字母小写),例如 tableNameinstance
  • 特例:以双下划线__打头的函数或方法作为魔术方法,例如__call__callStatic

数据表命名

数据表和字段采用小写加下划线方式命名,例如 think_user表和 user_name字段,禁止使用驼峰、中文或者拼音作为数据表及字段命名。

字段规范

  • 主键统一使用id
  • 外键统一使用resource_id形式(例如user_id);
  • 模型数据字段统一使用小写+下划线命名,和数据表字段规范一致;
  • 数据表统一添加系统时间字段(create_timeupdate_time),并使用datetime类型;
  • 使用软删除并添加时间字段delete_time,类型和系统时间字段保持一致;
  • 模型类应该继承一个统一的公共类,便于调整和统一设置;
  • 模型类应当通过定义autoWriteTimestamp属性明确时间字段类型;

查询规范

  • 对于使用了SQL函数的用法,使用fieldRaworderRawwhereRaw/whereExp替代fieldorderwhere用法。
  • 不要在WEB访问的时候进行大量数据操作,容易超时的数据处理应当在命令行下通过创建指令完成。

规范部署

请务必把你的WEB根目录指向public目录而不是应用根目录,并且不要随意更改入口文件的位置。public目录下面不要放除了入口文件和资源文件以外的其它应用文件。

统一IDE及代码规范配置、插件

项目团队应当尽量使用统一的IDE作为开发工具,并规范一致的代码规范配置项,如果使用的第三方代码规范及自动完成插件。如果团队成员较多而无法完全统一,最低限度,项目代码风格必须遵循PSR-1PSR-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过滤规则(默认没有任何过滤规则),常见的安全过滤函数包括stripslasheshtmlentitieshtmlspecialcharsstrip_tags等,请根据业务场景选择最合适的过滤方法。

最近更新