<b>PSR-1</b>
<b>基本代码规范</b>
文件必须以 <?php 或 <? 开头
不带BOM的UTF-8编码
命名空间以及类必须符合 PSR-4 自动加载规范
类命名遵循首字母大写驼峰命名
常量必须大写,单词间下划线隔开
方法名、变量名遵循首字母小写驼峰命名
关键词
“必须”(MUST)、“一定不可、一定不能”(MUST NOT)、“需要”(REQUIRED)、“将会”(SHALL)、“不会”(SHALL NOT)、“应该”(SHOULD)、“不该”(SHOULD NOT)、“推荐”(RECOMMENDED)、“可以”(MAY)和“可选”(OPTIONAL)<br>
<b>PSR-2</b>
<b>代码风格规范</b>
基于PSR-1
缩进必须是四个空格而不是Tab键
每行字符数软性保持在80个内, 理论上不多于120个
每个namespace声明语句和use声明语句后面必须带一个空白行
类的开始花名号 { 必须在函数声明后自成一行,结束花名号 } 也必须在函数主体后自成一行
abstract 和 final 必须在(public、private、protected)之前, static则必须在之后
控制结构
控制结构的关键字后必须要有一个空格符
控制结构的开始花括号 { 必须写在声明的同一行,而结束花括号 } 必须写在主体后自成一行
控制结构的开始左括号后和结束右括号前,都一定不能有空格符
<b>PSR-3</b>
<b>日志接口规范</b>
通过接收一个Psr\Log\LoggerInterface对象,来记录日志信息
日志等级
debug、 info、 notice、 warning、 error、 critical、 alert 以及 emergency
通用入口方法 log
log($level, $message, array $context = array())
第一个参数为记录的等级, 根据等级调用对应的方法
如果传入的等级常量参数没有预先定义,则必须抛出Psr\Log\InvalidArgumentException类型的异常
日志信息 message
日志信息需要为字符串类型 或者 有__toString() 方法的对象
日志信息 占位符
占位符必须与上下文数组的键名保持一致
占位符名字必须使用一对花括号来作为分隔符。在占位符和分隔符之间一定不能有任何空格。
占位符的名称应该只由A-Z、a-z,0-9、下划线_、以及英文的句号.组成
<b>PSR-4</b>
<b>自动加载规范</b>
完整的类名中任意一部分中的下滑线都是没有特殊含义的
所有类名都 必须 是大小写敏感的
类名前面连续的一个或多个命名空间必须至少有一个与文件目录相对应
末尾的类名 必须 与对应的以 .php 为后缀的文件同名
自动加载器(autoloader)的实现 一定不可 抛出异常、一定不可 触发任一级别的错误信息以及 不应该 有返回值