本文目录导读:

- PHP_CodeSniffer(PHPCS)—— 规范与风格检查
- PHPStan —— 静态分析(最高级别)
- Psalm —— 静态分析(备选)
- PhpStorm / IDE 内置检查(集成工具)
- PHP Mess Detector(PHPMD)—— 复杂度与坏味道
- Laravel Pint(Laravel 专用)
- 💡 推荐的组合策略
PHP 代码检查工具主要分为两类:代码规范检查(Code Sniffer) 和静态分析(Static Analysis),以下是目前最主流、推荐的几款工具:
PHP_CodeSniffer(PHPCS)—— 规范与风格检查
这是最经典的工具,主要检查代码是否符合 PSR-1、PSR-12 等编码标准,也能检查语法错误。
-
核心功能:自动检测代码风格违规,并可通过
phpcbf命令自动修复大多数格式问题。 -
适用场景:团队协作时统一代码风格,避免因缩进、空格、命名引起的争议。
-
安装与使用:
# 全局安装 composer global require squizlabs/php_codesniffer # 检查某个文件 phpcs --standard=PSR12 path/to/file.php # 自动修复错误 phpcbf --standard=PSR12 path/to/file.php
PHPStan —— 静态分析(最高级别)
这是目前 PHP 生态中最推荐的深度静态分析工具,它能在不运行代码的情况下,发现潜在的逻辑错误,如类型不匹配、未定义变量、错误的函数调用等。
-
核心功能:强大的类型推断系统,可以发现 bug,而不仅仅是风格问题,支持 0-9 级别的严格程度设置。
-
适用场景:严格检查代码健壮性,尤其是大型项目或核心业务逻辑。
-
安装与使用:
composer require --dev phpstan/phpstan # 默认级别 0 运行,推荐使用最高级别 9(需逐步配置) vendor/bin/phpstan analyse src --level=6
-
注意:它不检查代码风格,只关注代码质量和逻辑。
Psalm —— 静态分析(备选)
PHPStan 的最强竞争对手,同样非常优秀,由 Vimeo 开发,侧重于类型安全和可扩展性。
-
核心功能:高度可配置,支持严格类型检查,能发现类型矛盾(如
int被赋值为string)。 -
适用场景:如果你喜欢更严格的类型检查和更多的自定义规则,可以选它。
-
安装与使用:
composer require --dev vimeo/psalm vendor/bin/psalm init # 生成配置文件 vendor/bin/psalm # 运行检查
PhpStorm / IDE 内置检查(集成工具)
如果你使用 PhpStorm(IntelliJ),它的内置 Inspections 功能非常强大,集成了 PHPCS 规则和基本的静态分析。
- 优势:实时高亮显示错误和警告,无需命令行操作。
- 配置:在
Settings -> PHP -> Quality Tools里配置 PHPCS 路径。 - 推荐组合:IDE 负责开发时的实时反馈,命令行工具负责 CI/CD 中的强制门禁。
PHP Mess Detector(PHPMD)—— 复杂度与坏味道
专注于检测代码的复杂度和不良设计,比如过多的条件判断、过长的参数列表、重复代码等。
-
核心功能:基于 PHPCS 的 tokenizer,检查代码可维护性。
-
适用场景:寻找重构机会,防止代码腐化。
-
安装与使用:
composer require --dev phpmd/phpmd vendor/bin/phpmd src text cleancode,codesize,design
Laravel Pint(Laravel 专用)
如果你使用 Laravel 框架,这是 Laravel 官方提供的代码风格修复工具(基于 PHP-CS-Fixer)。
-
核心功能:零配置即可将代码风格统一为 Laravel 官方风格(PSR-12 变体)。
-
使用:
composer require laravel/pint --dev ./vendor/bin/pint --test # 只检查不修改 ./vendor/bin/pint # 自动修复
💡 推荐的组合策略
针对不同的项目阶段,建议如下组合:
| 阶段 | 推荐工具 | 目的 |
|---|---|---|
| 开发时 | PhpStorm 内置检查 | 实时反馈,快速修复风格和基础错误 |
| 提交前 (Pre-commit) | PHPCS + PHPStan(级别 6+) | 确保代码风格统一,且无重大逻辑漏洞 |
| CI/CD 流水线 | PHPStan(级别 7-9) + PHPMD | 强制性门槛,深度检测复杂度和潜在缺陷 |
最实用的入门建议:先安装 PHP_CodeSniffer(查风格)和 PHPStan(查逻辑),这两款工具覆盖了 90% 的日常需求,且都有很好的 VS Code / PhpStorm 插件支持。