PHPer必须遵守的规范--PSR
2018-04-16 14:16:37 by 248 2

PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准。

PHP FIG,FIG 是 Framework Interoperability Group(框架可互用性小组)的缩写,由几位开源框架的开发者成立于 2009 年,从那开始也选取了很多其他成员进来(包括但不限于 Laravel, Joomla, Drupal, Composer, Phalcon, Slim, Symfony, Zend Framework 等),虽然不是「官方」组织,但也代表了大部分的 PHP 社区。

项目的目的在于:通过框架作者或者框架的代表之间讨论,以最低程度的限制,制定一个协作标准,各个框架遵循统一的编码规范,避免各家自行发展的风格阻碍了 PHP 的发展,解决这个程序设计师由来已久的困扰。

目前已表决通过了 6 套标准,已经得到大部分 PHP 框架的支持和认可。

1,PSR-0自动加载标准(已经废弃)

其中PSR-0是PHP FIG 制定的第一套规范,主要是一些自动加载标准。

但是如官网所说PSR-0现在已经过时了,推荐使用PSR-4进行替换。

2,PSR-1 基础编码规范

PHP代码文件 必须 以

PHP代码文件 必须 以 不带 BOM 的 UTF-8 编码;

PHP代码中 应该 只定义类、函数、常量等声明,或其他会产生 副作用 的操作(如:生成文件输出以及修改 .ini 配置文件等),二者只能选其一;

命名空间以及类 必须 符合 PSR 的自动加载规范:[PSR-4]() 中的一个;

类的命名 必须 遵循 StudlyCaps 大写开头的驼峰命名规范;

类中的常量所有字母都 必须 大写,单词间用下划线分隔;

方法名称 必须 符合 camelCase 式的小写开头驼峰命名规范。

3,PSR-2 编码风格规范

代码 必须 遵循 [PSR-1]() 中的编码规范 。

代码 必须 使用4个空格符而不是「Tab 键」进行缩进。

每行的字符数 应该 软性保持在 80 个之内,理论上 一定不可 多于 120 个,但 一定不可 有硬性限制。

每个 namespace 命名空间声明语句和 use 声明语句块后面,必须 插入一个空白行。

类的开始花括号({) 必须 写在类声明后自成一行,结束花括号(})也 必须 写在类主体后自成一行。

方法的开始花括号({) 必须 写在函数声明后自成一行,结束花括号(})也 必须 写在函数主体后自成一行。

类的属性和方法 必须 添加访问修饰符(private、protected 以及 public),abstract 以及 final 必须 声明在访问修饰符之前,而 static 必须 声明在访问修饰符之后。

控制结构的关键字后 必须 要有一个空格符,而调用方法或函数时则 一定不可 有。

控制结构的开始花括号({) 必须 写在声明的同一行,而结束花括号(}) 必须 写在主体后自成一行。

控制结构的开始左括号后和结束右括号前,都 一定不可 有空格符。

4,PSR-3 日志接口规范

PSR-3规范主要是来规范日志接口(Logger Interface)。

5,PSR-4 自动加载规范

PSR-4规范也是规范 自动加载(autoload)的,是对PSR-0的修改

废除了PSR-0中_就是目录分割符的写法,_下划线在完全限定类名中是没有特殊含义了。

类文件名要以 .php 结尾。

类名必须要和对应的文件名要一模一样,大小写也要一模一样。

6,PSR-6 缓存接口规范

一个通用的缓存系统接口可以解决掉这些问题。库和框架的开发人员能够知道缓存系统会按照他们所

预期的方式工作,缓存系统的开发人员只需要实现单一的接口,而不用去开发各种各样的适配器。

当前还有许多规范正在起草中想要了解的同学可以自行goodle。