wangming1993 / issues

记录学习中的一些问题,体会与心得 https://wangming1993.github.io/issues
8 stars 4 forks source link

Yii2编码规范 #6

Open wangming1993 opened 8 years ago

wangming1993 commented 8 years ago

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格式

      类名

    • 类命名规则采用驼峰命名法 

      类(包含接口)

    • 类命名规则采用驼峰命名法 
    • { 应该写在类名下面
    • 每一个类必须有一个符合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的简短数组语法 [], 不使用 array()

数字索引

关联索引

控制语句

if ($event === null) {
    return new Event();
}
#不推荐
double getPayAmount() {
  double result;
  if (_isDead) result = deadAmount();
  else {
    if (_isSeparated) result = separatedAmount();
    else {
      if (_isRetired) result = retiredAmount();
      else result = normalPayAmount();
    };
  }
  return result;
};  
#推荐
double getPayAmount() {
  if (_isDead) return deadAmount();
  if (_isSeparated) return separatedAmount();
  if (_isRetired) return retiredAmount();
  return normalPayAmount();
};  

匿名函数声明

wangming1993 commented 7 years ago

https://github.com/XiaoLer/php-develop-standards/blob/master/php-basic-coding-standard.md