PHP 之道

PHP 代码规范

PHP 社区非常庞大且多样化,由无数的库、框架和组件组成。对于 PHP 开发者来说,在一个项目中组合使用多个不同的库是非常普遍的操作。为了让开发者能够轻松地在项目中“混搭”各种库,让 PHP 代码尽可能遵循统一的代码规范至关重要。

“框架交互小组”(Framework Interop Group,简称 FIG)提出并批准了一系列编码建议。虽然并非所有规范都直接涉及代码风格,但其中最核心的包括 PSR-1PSR-12PSR-4 以及 PER 编码规范。这些建议仅仅是一套规则,目前已被 Drupal、Zend、Symfony、Laravel、CakePHP、phpBB、AWS SDK、FuelPHP、Lithium 等众多主流项目采用。你可以在自己的项目中使用它们,也可以继续坚持你个人的风格。

理想情况下,你应该编写符合已知标准的 PHP 代码。这可以是 PSR 的任意组合,也可以是 PEAR 或 Zend 制定的编码规范。这意味着其他开发者可以轻松阅读并参与你的代码,即便应用中使用了大量第三方组件,也能保持整体代码的一致性。

1. 核心标准参考

2. 检查与自动修复工具

你可以使用 PHP_CodeSniffer 来检查代码是否符合上述任何一项建议。此外,Sublime Text 等文本编辑器的插件可以为你提供实时的代码反馈。

2.1 自动修复代码布局

你可以使用以下工具自动调整代码格式:

  1. PHP Coding Standards Fixer:拥有经过严苛测试的代码库,功能非常强大。
  2. PHP Code Beautifier and Fixer (phpcbf):这是随 PHP_CodeSniffer 一起提供的工具,可以根据设定的标准自动调整代码。

3. 命令行操作指南

你可以在终端(Shell)中手动运行 phpcs 来检查错误:

# 使用 PSR1 标准检查 文件.php
phpcs -sw --standard=PSR1 文件.php

它会列出代码中的错误并描述修复方法。一个进阶技巧是:将 phpcs 命令包含在 Git 的 pre-commit 钩子中,并带上 --filter=GitStaged 参数。这样,任何违反规范的代码在修复之前都无法提交到仓库。

3.1 使用 phpcbf 自动修复

如果你已经安装了 PHP_CodeSniffer,可以使用 phpcbf 自动修复它报告的布局问题:

# 自动按 PSR1 标准修复 文件.php 的格式
phpcbf -w --standard=PSR1 文件.php

3.2 使用 PHP Coding Standards Fixer

另一个高效的选择是使用 php-cs-fixer。它会在修复之前展示代码结构中存在的具体错误类型:

# 使用 PSR1 规则修复代码,并开启详细模式 (-v)
php-cs-fixer fix -v --rules=@PSR1 文件.php

4. 语言习惯与进阶资源

在编写代码时,所有的符号名称(如变量名、类名、方法名)和代码基础设施,首选使用英语。至于注释,你可以使用任何易于被当前及未来所有参与项目的成员阅读的语言。

最后,如果你想进一步学习如何编写整洁、优雅的 PHP 代码,Clean Code PHP 是一个非常优秀的补充资源,推荐阅读。