php的psr规范(accept)

官网地址

ACCEPT(公认的)

psr0:自动加载规范(旧)

这个规范可以抛弃了

psr1:基本编码规范

  1. php文件必须以标签开始
  2. php文件必须是utf-8无BOM编码格式
  3. 一个源文件建议只用作定义类、函数、常量等声明,或者其他产生从属效应的操作(如:输出信息,修改配置文件等
  4. 命名空间和类必须符合自动加载规范
  5. 类的命名必须遵守以大写开头的驼峰式命名规范(MyClass)
  6. 类常量所有字母必须大写,用下划线作为分隔符
  7. 方法名必须遵守以小写字母开头的驼峰式命名规范(getUserName)
    从属效应是指仅仅通过包含文件,不直接声明类、函数和常量而执行的逻辑操作。
    一份PHP源文件应该要么就只包含不产生从属效应的定义操作,要么就包含只会产生从属效应的逻辑操作,切勿同时包含两者。

psr2:代码风格规范

  1. 必须遵循psr1规范
  2. 代码必须使用4个空格进行缩进,而不是tab
  3. 每行代码的字符数建议在80以内,最多不超过120
  4. namespaceuse声明后必须插入一个空白行
  5. 类与方法的左花括号{必须在类的声明后独立一行,右花括号}也必须独立一行
  6. 类的属性与方法必须添加访问修饰符(public,protected,private),abstract以及final必须声明在访问修饰符之前,而static必须声明在访问修饰符之后(例:final public static
  7. 在流程控制结构的关键字后必须有一个空格,而函数与方法的调用不能有空格
  8. 流程控制结构的左花括号 { 必须跟其处于同一行,右花括号 } 必须在控制结构主体之后自成一行
  9. 控制结构的开始左括号之后,和结束右括号之前都不可以有空格

psr3:日志接口规范

  1. LoggerInterface接口对外定义了八个方法,分别用来记录 RFC 5424 中定义的八个等级的日志:debug、info、notice、warning、error、critical、alert、emergency
  2. 第九个方法log(),第一个参数为记录等级。可使用一个预先定义的等级常量作为参数来调用此方法,必须与直接调用以上八个方法具有相同的效果。如果传入的等级常量没有预先定义,则必须抛出psr\Log\InvalidArgumentException类型的异常。不推荐使用自定义的日志等级,除非你非常确定当前类库对其有所支持。

psr4:自动加载规范(新)

  1. 此处的“类”是一个泛称,它包含类、接口、traits 以及其他类似的结构
  2. 完全限定类名需要遵循以下结构:\<命名空间>(\<子命名空间>)*\<类名>
    1. 完全限定类名必须要有一个顶级命名空间,被称为 “vendor namespace”;
    2. 完全限定类名可以有一个或多个子命名空间;
    3. 完全限定类名必须有一个终止类名;
    4. 完全限定类名中任意一部分中的下划线都没有特殊含义;
    5. 完全限定类名可以由任意大小写字母组成;
    6. 完全限定类名必须以大小写敏感的方式引用;
  3. 当根据完整的类名载入相应的文件时:
    1. 完全限定类名中,连续的一个或几个子命名空间构成的命名空间前缀(不包括顶级命名空间的分隔符),至少对应着至少一个基础目录;
    2. 紧接命名空间前缀后的子命名空间必须与相应的”文件基目录“相匹配,其中的命名空间分隔符将作为目录分隔符;
    3. 终止类名对应一个以 .php 结尾的文件,文件名必须和终止类名大小写匹配;
  4. 自动加载器(autoloader)的实现不能抛出异常,不可引发任一级别错误,也不应该有返回值

psr6:缓存接口规范

「PSR 规范」PSR-6 缓存接口规范

你可能感兴趣的:(----------PHP,【语言】)