PHP 标准规范#
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 框架的支持和认可。
php-fig 地址#
https://github.com/php-fig
https://www.php-fig.org/psr/psr-1/
按表决情况索引#
已通过#
序号 标题 撰稿者 协调者 发起人
1 基础编码规范 Paul M. Jones N/A N/A
2 编码风格规范 Paul M. Jones N/A N/A
3 日志接口规范 Jordi Boggiano N/A N/A
4 自动加载规范 Paul M. Jones Phil Sturgeon Larry Garfield
6 缓存接口规范 Larry Garfield Paul Dragoonis Robert Hafner
7 HTTP 消息接口规范 Matthew Weier O’Phinney Beau Simensen Paul M. Jones
审查中#
序号 标题 撰稿者 协调者 发起人
起草中#
序号 标题 撰稿者 协调者 发起人
5 PHPDoc 标准 Mike van Riel Vacant Vacant
8 Huggable 接口 Larry Garfield Vacant Paul M. Jones
9 项目安全问题公示 Lukas Kahwe Smith Korvin Szanto Larry Garfield
10 项目安全上报方法 Lukas Kahwe Smith Larry Garfield Korvin Szanto
11 服务容器接口 Matthieu Napoli, David Négrier Paul M. Jones Vacant
12 全量编码风格规范 Korvin Szanto Alexander Makarov Robert Deutz
13 超媒体链接 Larry Garfield Matthew Weier O’Phinney Evert Pot
已废弃#
序号 标题 撰稿者 协调者 发起人
0 自动加载规范 Matthew Weier O’Phinney N/A N/A
按照数字索引#
状态 序号 标题 撰稿者 协调者 发起人
X 0 自动加载规范 Matthew Weier O’Phinney N/A N/A
A 1 基础编码规范 Paul M. Jones N/A N/A
A 2 编码风格规范 Paul M. Jones N/A N/A
A 3 日志接口规范 Jordi Boggiano N/A N/A
A 4 自动加载规范 Paul M. Jones Phil Sturgeon Larry Garfield
D 5 PHPDoc 标准 Mike van Riel Vacant Vacant
A 6 缓存接口规范 Larry Garfield Paul Dragoonis Robert Hafner
A 7 HTTP 消息接口规范 Matthew Weier O’Phinney Beau Simensen Paul M. Jones
D 8 Huggable 接口 Larry Garfield Vacant Paul M. Jones
D 9 项目安全问题公示 Lukas Kahwe Smith Korvin Szanto Larry Garfield
D 10 项目安全上报方法 Lukas Kahwe Smith Larry Garfield Korvin Szanto
D 11 服务容器接口 Matthieu Napoli, David Négrier Paul M. Jones Vacant
D 12 全量编码风格规范 Korvin Szanto Alexander Makarov Robert Deutz
D 13 超媒体链接 Larry Garfield Matthew Weier O’Phinney Evert Pot
说明: A (Accepted) = 已通过 | D (Draft) = 起草中 | R (Review) = 审查中 | X (Deprecated) = 已废弃
目前 PHP-FIG 有通过6份标准:
http://www.php-fig.org/psr/
国内的翻译有延迟,目前最接近的一份翻译在:
https://psr.phphub.org/
从目前通过的6份标准来看,最主要的价值是对于 php code standard 的确立,其次是对于 Cache、Log、HTTP 在框架中接口部分的统一
sensiolabs 做了一个可以自动按照 PSR-1 和 PSR-2 修正编码规范的工具:
https://github.com/FriendsOfPHP/PHP-CS-Fixer
这个工具还提供了许多编辑器代码规范提示的功能,包括:
Atom
NetBeans
PhpStorm
Sublime Text
Vim
https://github.com/squizlabs/PHP_CodeSniffer
phpcbf –help
http://psr.phphub.org/
https://github.com/php-fig/fig-standards
https://github.com/PizzaLiu/PHP-FIG