PHP PSR 标准规范 简介
PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准
PHP FIG
PHP FIG 是 PHP Framework Interoperability Group ( 框架可互用性小组 ) 的缩写
FIG 由几位开源框架的开发者成立于 2009 年,从那开始也选取了很多其他成员进来 ( 包括但不限于 Laravel, Joomla, Drupal, Composer, Phalcon, Slim, Symfony, Zend Framework 等 ) ,虽然不是「官方」组织,但也代表了大部分的 PHP 社区
PHP PSR
PHP 社区一直没有一个统一的标准规范,就像 Python 的 pep8
,这直接导致了不同项目间,不同框架之间编码规范各不相同,使得阅读代码有诸多的困难
这时候,有一批人站了出来,他们就是 PHP FIG 小组
PHP FIG 小组设计了 PSR,致力于
通过框架作者或者框架的代表之间讨论,以最低程度的限制,制定一个协作标准,各个框架遵循统一的编码规范,避免各家自行发展的风格阻碍了 PHP 的发展,解决这个程序设计师由来已久的困扰
目前已表决通过了 10 套标准,已经得到大部分 PHP 框架的支持和认可
根据表决情况索引
已通过
序号 | 标题 | 撰稿者 | 协调者 | 发起人 |
---|---|---|---|---|
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 |
11 | 容器接口 | Matthieu Napoli David Négrier |
Matthew Weier O'Phinney | Korvin Szanto |
13 | 超链接 | Larry Garfield | Matthew Weier O'Phinney | Marc Alexander |
15 | HTTP 处理 | Woody Gilk | N/A | Matthew Weier O'Phinney |
16 | 简单缓存 | Paul Dragoonis | Jordi Boggiano | Fabien Potencier |
审阅中
序号 | 标题 | 撰稿者 |
---|---|---|
12 | 编码规范补充 | Korvin Szanto |
起草中
序号 | 标题 | 撰稿者 |
---|---|---|
14 | 事件处理 | Larry Garfield |
17 | HTTP 工厂方法规范 | Woody Gilk |
18 | HTTP 客户端 | Tobias Nylhom |
被拒绝
序号 | 标题 | 撰稿者 |
---|---|---|
5 | PHP 注释规范 | Mike van Riel |
8 | Huggable 接口 | Larry Garfield |
9 | 安全问题公告 | Michael Hess |
10 | 安全问题上报及处理 | Michael Hess |
已废弃
序号 | 标题 | 撰稿者 |
---|---|---|
0 | 自动加载规范 | Matthew Weier O'Phinney |
Numerical Index
序号 | 标题 | 撰稿者 | 状态 |
---|---|---|---|
0 | 自动加载 | Matthew Weier O'Phinney | Deprecated |
1 | 基本编码规范 | Paul M. Jones | Accepted |
2 | 编码规范 | Paul M. Jones | Accepted |
3 | 日志接口 | Jordi Boggiano | Accepted |
4 | 自动加载规范 | Paul M. Jones | Accepted |
5 | PHP 注释规范 | Mike van Riel | Abandoned |
6 | 缓存接口 | Larry Garfield | Accepted |
7 | HTTP 消息接口 | Matthew Weier O'Phinney | Accepted |
8 | Huggable 接口 | Larry Garfield | Abandoned |
9 | 安全问题公示 | Michael Hess | Abandoned |
10 | 安全问题上报及处理 | Michael Hess | Abandoned |
11 | 容器接口 | Matthieu Napoli, David Négrier | Accepted |
12 | 编码规范补充 | Korvin Szanto | Review |
13 | 超媒体链接 | Larry Garfield | Accepted |
14 | 事件管理 | Larry Garfield | Draft |
15 | HTTP 处理 | Woody Gilk | Accepted |
16 | 简单缓存 | Paul Dragoonis | Accepted |
17 | HTTP 工厂方法规范 | Woody Gilk | Draft |
18 | HTTP 客户端 | Tobias Nyholm | Draft |