PHP编码规范(中文版)

2021-12-08 13:44:19 浏览数 (1)

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: {你的名字} ({参与的项目名称})
  • 邮件内容应包括你的名字、你参与的项目名称、项目的地址以及其它相关信息。

目前的成员会对你的加入请求进行投票。

请不要在一份申请中提交多个加入请求,每份申请只能提交一份请求。

目前的成员及其代表项目列表

  1. Nate Abele: Lithium
  2. Nils Adermann: [php](www.oschina.net/p/php)BB
  3. Brett Bieber: PEAR, PEAR2
  4. Guilherme Blanco: Doctrine, Doctrine2, et al.
  5. Jordi Boggiano: Composer, Packagist
  6. Pádraic Brady: Zend Framework
  7. Karma Dordrak: Zikula
  8. Paul Dragoonis: PPI, PPI2
  9. William Durand: Propel, Propel 2
  10. Don Gilbert: Joomla
  11. Cal Evans: the community at large
  12. Larry Garfield: Drupal
  13. Ivan Habunek: Apache log4[php](www.oschina.net/p/php)
  14. Paul M. Jones: Solar Framework, Aura Project
  15. Karsten Dambekalns: TYPO3 Flow, TYPO3 Neos
  16. Larry Masters: Cake[PHP](www.oschina.net/p/php), Cake[PHP](www.oschina.net/p/php) 2
  17. John Mertic: SugarCRM
  18. Taylor Otwell: Laravel
  19. Ryan Parman: Amazon Web Services SDK
  20. Evert Pot: SabreDAV
  21. Fabien Potencier: Symfony, Symfony2
  22. Mike van Riel: phpDocumentor
  23. Andre Romcke: eZ Publish
  24. Phil Sturgeon: PyroCMS
  25. Lukas Smith: Jackalope
  26. Kris Wallsmith: Assetic, Buzz
  27. David Zülke: Agavi

0 人点赞