推荐本地安装 PHP-CS-Fixer 为开发依赖,通过 composer require --dev friendsofphp/php-cs-fixer 添加,配置 .php-cs-fixer.php 规则集,定义 scripts 实现一键修复(cs:fix)与校验(cs:check),并结合 Git pre-commit 钩子自动处理暂存文件。

直接用 Composer 安装 PHP-CS-Fixer 并配置为项目级开发依赖,再通过脚本或 IDE 集成实现自动修复,是最稳妥、可复现的方式。
安装 PHP-CS-Fixer 到项目中
推荐以 本地安装(而非全局)方式引入,避免版本冲突,也便于团队统一规范:
- 运行
composer require --dev friendsofphp/php-cs-fixer,它会被添加到require-dev中 - 安装后,可执行路径为
vendor/bin/php-cs-fixer(Linux/macOS)或vendor\bin\php-cs-fixer.bat(Windows) - 检查是否可用:
./vendor/bin/php-cs-fixer --version
配置规则集(.php-cs-fixer.php)
在项目根目录创建 .php-cs-fixer.php 文件,定义你想要的代码风格。不写配置则使用默认规则,但建议显式声明:
- 常见写法是返回一个
PhpCsFixer\Config实例,例如基于 PSR-12 或 Symfony 标准扩展 - 示例最小配置:
$config = new PhpCsFixer\Config(); return $config->setRules([ '@PSR12' => true, 'array_syntax' => ['syntax' => 'short'], 'no_unused_imports' => true, ])->setFinder( PhpCsFixer\Finder::create() ->in(['src', 'tests']) ->name('*.php') ->notName('index.php') ->ignoreDotFiles(true) ->ignoreVCS(true) ); - 规则名可通过
./vendor/bin/php-cs-fixer describe [rule-name]查看说明
一键修复与校验命令
把常用操作写进 composer.json 的 scripts 段,提升执行效率和一致性:
立即学习“PHP免费学习笔记(深入)”;
- 添加如下脚本:
"scripts": { "cs:fix": "php-cs-fixer fix --verbose", "cs:check": "php-cs-fixer fix --dry-run --diff" } - 运行
composer cs:fix自动修复所有匹配文件 - 运行
composer cs:check仅检查不修改,适合 CI 流程中做风格门禁 - 加
--path-mode=intersection可限制只处理 Git 变更文件(配合 pre-commit 使用)
接入 Git 提交前自动修复(pre-commit)
用 husky-like 工具(如 Lefthook 或原生 Git hooks)触发修复,避免不合规代码入库:
- 以 Lefthook 为例,在
lefthook.yml中添加:pre-commit: commands: php-cs-fixer: run: composer cs:fix -- --path-mode=intersection {staged_files} - 这样每次
git add后提交,只会修复本次暂存区中的 PHP 文件 - 注意:确保
composer cs:fix命令能正确识别并修改文件,且不中断提交流程(失败时可设fail_fast: false)











