PSR:PHP编码规范(Proposing a Standards Recommendation)

PSR:PHP编码规范(Proposing a Standards Recommendation)

只贴出一些需要注意的,后续的版本必须遵循前面的所有未废弃的版本

PSR1

  1. PHP代码中应该只定义类、函数、常量等声明,或其他会产生 从属效应 的操作(如:生成文件输出以及修改.ini配置文件等),二者只能选其一
  2. PHP 5.3及以后版本的代码必须使用正式的命名空间(伪命名空间是用_来分隔类名),类的命名必须是大写开头的驼峰命名法
  3. 类(此处指代所有的类、接口、性状traits):类常量所有字母必须大写,词间用_分隔;类的属性不做强制要求,可用大驼峰、小驼峰或下划线分隔,但必须保持一致;类方法使用小驼峰

PSR2

  1. 缩进使用4个空格
  2. 每行字符数应该软性保持在80个以内,理论上一定不可多于120个,但一定不能有硬性限制
  3. 每个namespace命名空间声明语句 和 use声明语句块(不是每一条都要空行) 后面,必须插入一个空白行
  4. 类和方法的花括号自成一行(控制结构不同,后面说)
  5. 类的属性和方法必须添加访问修饰符(protected, private, public),且abstract, final必须在访问修饰符之前,而static必须声明在访问修饰符之后
  6. 控制结构的关键字后必须有一个空格符,调用方法或函数的时候则一定不能有
  7. 控制结构的开始花括号写在声明的同一行,结束花括号自成一行,且开始花括号后 和 结束花括号前,一定不能有空格符
  8. 所有PHP文件必须使用Unix LF作为行的结束符(\n),必须以一个空白行作为结束,纯PHP代码文件必须省略最后的?>
  9. 每行一定不能存在多于一条语句,非空行后一定不能有多余的空格符
  10. PHP所有关键字必须全部小写,包括true, false, null也是
  11. 类、接口、性状的关键字extends和implements必须写在类名称的同一行
  12. 每条语句一定不可以定义超过一个属性
  13. 参数列表可以分列成多行,这样,包括第一个参数在内的每个参数都必须单独成行,同时结束括号以及方法开始的花括号必须写在单独的同一行,中间用空格分隔
  14. PSR2补充:使用一个或多个多行参数,如数组或匿名参数,将[留在第一行,将]留在与下一个参数同一行

PSR3

  1. 日志接口规范,TODO,使用到的时候再补充

PSR4

以下的类泛指所有的class类、接口、traits可复用代码块以及其它类似结构

  1. 一个完整的类名需要有以下的结构:<命名空间>(<子命名空间>)*<类名>
  2. 完整的类名中,去掉最前面的命名空间分隔符,前面连续的一个或多个命名空间和子命名空间,作为“命名空间前缀”,其必须与至少一个“文件基目录”相对应
  3. 紧接命名空间前缀后的子命名空间必须与相应的”文件基目录“相匹配,其中的命名空间分隔符将作为目录分隔符
  4. 末尾的类名必须与对应的以 .php 为后缀的文件同名
  5. 自动加载器(autoloader)的实现一定不能抛出异常、一定不能触发任一级别的错误信息以及不应该有返回值

你可能感兴趣的:(PSR:PHP编码规范(Proposing a Standards Recommendation))