Yii2编码规范

概览

遵循PSR-2编码规范

  1. 文件必须使用 <?php 或者 <?= 标签
  2. 文件的结尾必须是一个空行
  3. 文件编码格式必须是不带BOM的UTF-8格式
  4. 必须使用4个空格作为缩进, 不使用tab
  5. 类命名规则采用驼峰命名法 (Pascal 命名法, 首字母大写)
  6. 常量命名全部字母大写,单词间以下划线作为分割
  7. 方法名采用小驼峰式命名法, 除第一个单词首字母小写, 其余单词首字母大写
  8. 属性名也采用小驼峰式命名法
  9. 私用属性以下划线开头
  10. 总是使用elseif而不是else if

文件

PHP标签

  • 文件必须使用 <?php 或者 <?= 标签
  • 对于纯php文件, 可以省略结束标签?>
  • 结束行不要添加空格
  • 任何包含php代码的文件应该使用.php作为扩展名

字符编码

  • 文件编码格式必须是不带BOM的UTF-8格式

类名

  • 类命名规则采用驼峰命名法 (Pascal 命名法, 首字母大写)

类(包含接口)

  • 类命名规则采用驼峰命名法 (Pascal 命名法, 首字母大写)
  • { 应该写在类名下面
  • 每一个类必须有一个符合PHPDoc的文档块
  • 类中的所有代码必须缩进一个制表符
  • 一个PHP文件中应该只有一个类
  • 所有的类应该注明命名空间
  • 类名应该匹配文件名,类的命名空间应该匹配目录结构

常量

  • 常量命名全部字母大写,单词间以下划线作为分割

属性

  • 公有的类成员需要使用public指明
  • public或者protected 的变量应该在方法之前声明
  • 类中变量的声明顺序应该按照 public -> protected -> private
  • 属性声明间不要空行, 属性和方法之间以两个空行分隔
  • 属性名也采用小驼峰式命名法
  • 私用属性以下划线开头
  • 使用有描述性的名称

方法

  • 方法名采用小驼峰式命名法, 除第一个单词首字母小写, 其余单词首字母大写
  • 方法名应该能够描述方法的意图作用
  • 方法声明应该使用public,protected,private修饰符
  • {应该在方法声明行之下

PHP Doc

  • 声明类型应该为: @param @var @property @return boolean integer string array null

构造器

  • 应该使用 __construct

PHP

类型

  • 所有的php类型都应该使用小写

字符串

  • 不包含单引号或变量的字符串应该使用单引号
  • 双引号作为变量替换时引用
  • 使用来进行字符串的拼接
  • 长串应该分多行格式化

数组

使用 PHP5.4的简短数组语法

数字索引

  • 不要使用负数作为索引

关联索引

  • 采取每行一个键值对的形式

控制语句

  • 控制语句的条件的括号前后需要有一个空格
1
2
3
if ($event === null) {
return new Event();
}
  • 避免在return 后面使用 else
1
2
3
4
5
6
7
8
9
10
11
12
13
#不推荐
double getPayAmount() {
double result;
if (_isDead) result = deadAmount();
else {
if (_isSeparated) result = separatedAmount();
else {
if (_isRetired) result = retiredAmount();
else result = normalPayAmount();
};
}
return result;
};
1
2
3
4
5
6
7
#推荐
double getPayAmount() {
if (_isDead) return deadAmount();
if (_isSeparated) return separatedAmount();
if (_isRetired) return retiredAmount();
return normalPayAmount();
};

匿名函数声明

  • function/use 之间需要空格