前言:
为方便自己或者后人阅读之前写的代码,写php的要求遵循以下代码规范,大家看一看,不强求全部做到,尽量做到即可。
参考自ThinkPHP项目及代码规范指北、PSR-1 基础编码规范、PSR-2 编码风格规范。
编写规范
-
新项目至少使用tp5.0以上的框架,尽量遵循MVC架构
-
代码 必须 使用 4 个空格来进行缩进。
-
类的开始花括号({)写在函数声明后自成一行,结束花括号(})也写在函数主体后自成一行。
class Lottery extends Controller
{
}
- 方法的开始花括号({)写在函数声明后自成一行,结束花括号(})也写在函数主体后自成一行。
public function index()
{
}
- 控制结构的开始花括号({)写在声明的同一行,而结束花括号(})写在主体后自成一行。
for ($i = 0; $i < 10; $i++) {
// for 循环主体
}
类和文件命名
-
类(包括接口、Trait)文件名和类名保持一致,并且使用首字母大写的驼峰命名;
-
函数文件、配置文件、路由定义文件等文件名使用小写规范;
-
无论类还是普通文件都使用.php后缀;
-
目录名统一使用小写规范,并且使用单数规范;
-
模板文件使用小写规范;
配置和变量命名
-
配置参数名统一使用小写规范;
-
常量定义统一使用大写规范;
-
环境变量定义统一使用大写规范;
函数和类、属性命名
-
函数的命名使用小写字母和下划线(小写字母开头)的方式,例如
get_client_ip
; -
方法的命名使用驼峰法(首字母小写),例如
getUserName
; -
属性的命名使用驼峰法(首字母小写),例如
tableName
、instance
; -
特例:以双下划线__打头的函数或方法作为魔术方法,例如
__call
和__callStatic
;
数据表命名
数据表和字段采用小写加下划线方式命名,例如 think_user
表和 user_name
字段,禁止使用驼峰、中文或者拼音作为数据表及字段命名。
控制器规范
-
控制器建议继承一个公共的控制器类,便于统一调整和增加通用逻辑。并建议继承系统的控制器类,以便于使用控制器中间件功能。
-
对于控制器操作方法的拦截以及统一处理应当使用中间件独立操作。
-
控制器的代码应当尽量少,以确保逻辑清晰和可读性。始终保持controller层作为访问控制器层的名称。
-
请求数据的验证操作统一使用验证器进行验证。
-
不要在操作方法中输出除了调试信息之外的任何内容,而是通过return返回需要输出的内容。
-
操作方法中始终明确响应输出的类型,而不要依赖全局配置。
数据库和模型规范
-
主键统一使用
id
; -
外键统一使用
resource_id
形式(例如user_id
); -
模型数据字段统一使用小写+下划线命名,和数据表字段规范一致;
-
数据表统一添加系统时间字段(
create_time
和update_time
); -
当使用软删除,添加时间字段
delete_time
,类型和系统时间字段保持一致; -
模型类应该继承一个统一的公共类,便于调整和统一设置;
模板规范
-
模板文件应当引入一个公共模板,用于引入公共的css、js文件
-
模板文件应当使用操作方法转换为小写+下划线方式命名;
-
当你需要跨模块调用的时候,尽量在控制器操作方法中明确要渲染的模板;
-
避免在模板文件中添加逻辑代码,应当只是数据的输出;
-
使用static目录统一存放静态资源文件;
Api规范
- 待更新···
网友评论