如何通过Composer Scripts自动格式化PHP代码_集成PHP-CS-Fixer或Pint到你的开发流程

16次阅读

通过composer Scripts集成php-CS-Fixer或Pint可自动统一代码风格,提升团队协作效率。首先将工具作为开发依赖安装,PHP-CS-Fixer需配置.php-cs-fixer.php文件定义规则,Pint则可直接使用内置preset或通过pint.json定制;接着在composer.json中添加”format”和”check-style”等脚本命令,实现代码格式化与检查;最后结合git钩子(如pre-commit)调用composer run pre-commit,实现提交前自动修复,确保代码库风格一致,适用于CI流程与团队协作场景。

如何通过Composer Scripts自动格式化PHP代码_集成PHP-CS-Fixer或Pint到你的开发流程

在现代php开发中,保持代码风格一致是团队协作和项目维护的重要环节。手动格式化不仅耗时还容易出错,通过Composer Scripts集成PHP-CS-Fixer或Pint,可以在开发流程中自动完成代码规范修复,提升效率与一致性。

使用Composer Scripts自动化代码格式化

Composer不仅用于依赖管理,其Scripts功能还能绑定自定义命令,在特定事件触发时执行。你可以将代码格式化工具作为脚本注册进去,比如在提交前、测试前或本地开发时自动运行。

步骤简述:

  • 安装PHP-CS-Fixer或Pint作为开发依赖
  • 配置规则文件(如.php-cs-fixer.phppint.json
  • composer.json中添加自定义scripts
  • 按需运行或结合Git钩子自动化执行

集成PHP-CS-Fixer

PHP-CS-Fixer是广泛使用的代码风格修复工具,支持PSR标准及大量自定义规则。

立即学习PHP免费学习笔记(深入)”;

安装方式:

composer require --dev friendsofphp/php-cs-fixer

在项目根目录创建.php-cs-fixer.php配置文件

$finder = PhpCsFixerFinder::create() ->in(DIR . '/src') ->in(DIR . '/tests');

return PhpCsFixerConfig::create() ->setRules([ '@PSR12' => true, 'array_syntax' => ['syntax' => 'short'], 'ordered_imports' => true, ]) ->setFinder($finder);

然后在composer.json中添加脚本:

"scripts": {     "format": "php-cs-fixer fix",     "check-style": "php-cs-fixer fix --dry-run --diff" }

现在可以通过以下命令格式化代码:

composer format       # 修复代码 composer check-style  # 检查是否符合规范(常用于CI)

集成Pint(laravel官方推荐)

Pint是Laravel推出的轻量级代码美化工具,基于PHP-CS-Fixer核心,但无需额外配置即可开箱使用,更适合简单项目或Laravel生态。

安装Pint:

composer require --dev laravel/pint

可选:创建pint.json进行定制:

{     "preset": "psr12",     "rules": {         "array_syntax": {"syntax": "short"},         "ordered_imports": true     },     "paths": [         "src/",         "tests/"     ] }

添加Composer脚本:

"scripts": {     "format": "pint",     "check": "pint --test" }

使用方式:

composer format  # 格式化所有指定文件 composer check   # 检查格式问题(CI中使用)

结合Git钩子实现自动格式化

为了进一步自动化,可以利用工具如composer-scriptssimple-git-hooks在提交代码前自动格式化。

例如使用 GrumPHP 或更轻量的 spatie/composer-backup 配合钩子管理。

一个简单的方案是在composer.json中使用脚本钩子:

"scripts": {     "pre-commit": "composer format",     "test": [         "composer check-style",         "// 其他测试命令"     ] }

再配合git hooks工具(如lefthookhusky-php),在pre-commit阶段调用composer run pre-commit,确保每次提交的代码都经过格式化。

基本上就这些。通过Composer Scripts集成格式化工具,既能统一团队编码风格,又能减少人工干预,让开发更专注业务逻辑。选择PHP-CS-Fixer还是Pint,取决于项目复杂度和团队偏好,两者都能很好地融入现代PHP工作流。

text=ZqhQzanResources