PHP编码规范(中文版)导读
本文档是PHP互操作性框架制定小组(PHP-FIG :PHP Framework Interoperability Group)制定的PHP编码规范(PSR:Proposing a Standards Recommendation)中译版。
翻译过程中参照了 莫希爾(Mosil)手札 的繁体中文版,以及 Corrie Zhao 组织翻译的简体中文版, 译文中为了让语句通顺,便于理解,没有对原文逐字翻译,个别语句与原文原意可能略有偏差,希望告知指正。
目前官方已制定的规范包括以下六份文件:
- PSR-0 (已弃用)
- PSR-1
- PSR-2
- PSR-2补充
- PSR-3
- PSR-4
- 2014/04/25 添加
PSR-2补充
文件以及修改之前版本中的翻译不当与错误。 - 2014/07/31 添加
PSR-4
。 - PSR-1 基本代码规范
- PSR-2 代码风格规范
- PSR-2-1 补充文档
- PSR-3 日志接口规范
- PSR-4 自动载入 我们希望你贡献的代码符合:
- ThinkPHP 的编码规范
- 适当的注释,能让其他人读懂
- 遵循 Apache2 开源协议
- 编辑器 / IDE 配合 PSR2 自动格式化工具
- 如果想要了解更多细节或有任何疑问,请继续阅读下面的内容
- 注意事项
- 本项目代码格式化标准选用 [PSR-2](www.kancloud.cn/thinkphp/ph…;)
- 类名和类文件名遵循 [PSR-4]([www.kancloud.cn/thinkphp/ph…www.kancloud.cn/thinkphp/php-fig-psr/3144);)
- 对于 Issues 的处理,请使用诸如
fix #xxx(Issue ID)
的 commit title 直接关闭 issue。 - 系统会自动在 PHP 5.4 5.5 5.6 7.0 和 HHVM 上测试修改,其中 HHVM 下的测试容许报错,请确保你的修改符合 PHP 5.4 ~ 5.6 和 PHP 7.0 的语法规范;
- 管理员不会合并造成 CI faild 的修改,若出现 CI faild 请检查自己的源代码或修改相应的单元测试文件;
以下是原版的导读:
PHP互操作性框架制定小组
组建本小组的目的是,通过在各项目的代表之间讨论他们共同的编码规范,以制定一个协作标准。本规范的主要面向对象是本小组的各个组成成员,当然,同时也欢迎关注本规范的其它[PHP](www.oschina.net/p/php)社区采用本规范。
提交规范建议
可以通过以下方式给本规范提交建议:
- fork [PSR代码库](github.com/php-fig/fig-standards),创建并检出一个分支,在
proposed/
下添加 规范建议,然后 push 分支到 Github,最后给我们发送一个 pull request;又或者 - 在 Github 下新建一个讨论 ticket;又或者
- 在 [邮件列表](groups.google.com/group/php-fig/) 中提交建议。
成为投票成员
注意,你 不需要 成为投票成员才能在 [邮件列表](groups.google.com/group/php-fig/) 中发表言论。
想要成为投票成员,你必须发送一封邮件到 [邮件列表](groups.google.com/group/php-fig/) 中。
- 邮件主题格式如下:
Membership Request: {你的名字} ({参与的项目名称})
- 邮件内容应包括你的名字、你参与的项目名称、项目的地址以及其它相关信息。
目前的成员会对你的加入请求进行投票。
请不要在一份申请中提交多个加入请求,每份申请只能提交一份请求。
目前的成员及其代表项目列表
- Nate Abele: Lithium
- Nils Adermann: [php](www.oschina.net/p/php)BB
- Brett Bieber: PEAR, PEAR2
- Guilherme Blanco: Doctrine, Doctrine2, et al.
- Jordi Boggiano: Composer, Packagist
- Pádraic Brady: Zend Framework
- Karma Dordrak: Zikula
- Paul Dragoonis: PPI, PPI2
- William Durand: Propel, Propel 2
- Don Gilbert: Joomla
- Cal Evans: the community at large
- Larry Garfield: Drupal
- Ivan Habunek: Apache log4[php](www.oschina.net/p/php)
- Paul M. Jones: Solar Framework, Aura Project
- Karsten Dambekalns: TYPO3 Flow, TYPO3 Neos
- Larry Masters: Cake[PHP](www.oschina.net/p/php), Cake[PHP](www.oschina.net/p/php) 2
- John Mertic: SugarCRM
- Taylor Otwell: Laravel
- Ryan Parman: Amazon Web Services SDK
- Evert Pot: SabreDAV
- Fabien Potencier: Symfony, Symfony2
- Mike van Riel: phpDocumentor
- Andre Romcke: eZ Publish
- Phil Sturgeon: PyroCMS
- Lukas Smith: Jackalope
- Kris Wallsmith: Assetic, Buzz
- David Zülke: Agavi