可在 Composer 的 post-install-cmd 钩子中集成 PHP_CodeSniffer 或 PHP-CS-Fixer 实现安装后自动代码风格检查;需作为 dev 依赖安装,配置 scripts 并确保失败时返回非零退出码以阻断流程。

可以在 Composer 的 post-install-cmd 钩子中集成代码风格检查工具(如 PHP_CodeSniffer 或 PHP-CS-Fixer),实现 install 后自动校验。
配置 composer.json 的 scripts 钩子
在项目根目录的 composer.json 中,向 "scripts" 字段添加 "post-install-cmd",调用风格检查命令:
- 若使用 PHP_CodeSniffer(例如检查 PSR-12):
"post-install-cmd": "phpcs --standard=PSR12 --extensions=php src/ tests/" - 若使用 PHP-CS-Fixer(只检查不修复):
"post-install-cmd": "php-cs-fixer fix --dry-run --diff --verbose"
确保检查工具已正确安装
风格检查工具需作为开发依赖存在,否则钩子会失败:
- 运行
composer require --dev squizlabs/php_codesniffer或composer require --dev friendsofphp/php-cs-fixer - 推荐在
require-dev中声明,并统一配置文件(如phpcs.xml或.php-cs-fixer.php)
让检查失败时中断流程(可选但推荐)
默认情况下,即使检查报错,post-install-cmd 仍可能继续执行。可通过以下方式增强可靠性:
- PHP_CodeSniffer:加
--report=full --report-width=120并确保返回非零退出码(新版默认支持) - PHP-CS-Fixer:
--dry-run本身会在有差异时返回 1,可直接用于 CI 或本地阻断 - 组合多个命令时,用
&&连接,例如:"post-install-cmd": "phpcs src/ && php-cs-fixer fix --dry-run"
兼容 update 和 install(避免重复配置)
为同时覆盖 composer install 和 composer update,可复用钩子:
- 将命令提取为自定义脚本(如
"check-style") - 再在
"post-install-cmd"和"post-update-cmd"中引用:"post-install-cmd": ["@check-style"]"post-update-cmd": ["@check-style"]
基本上就这些。关键是把检查命令写进钩子、装好工具、并确认它真能报错退出——不然就只是“看起来在检查”而已。










