jubeki / laravel-code-style
结合自定义修复器和Laravel Pint的规则集,修复Laravel应用程序/包中的代码风格。
Requires
- php: ^8.0
- friendsofphp/php-cs-fixer: ^3.47
- illuminate/support: ^9.34 || ^10.0 || ^11.0
Requires (Dev)
- orchestra/testbench: ^8.0 || ^9.0
- phpunit/phpunit: ^10.4.1
This package is auto-updated.
Last update: 2024-09-13 12:41:32 UTC
README
Laravel 代码风格
结合自定义修复器和Laravel Pint的规则集
简介
此包为使用与 Laravel Pint 相同的规则集的 Laravel 应用程序和包提供自动代码风格检查和格式化。该包基于 PHP-CS-Fixer 构建,因此您可以将自定义修复器添加到其中。(这是Laravel Pint的不足之一)
安装
composer require jubeki/laravel-code-style --dev
安装包后,您应该发布配置。
php artisan vendor:publish --provider="Jubeki\LaravelCodeStyle\ServiceProvider"
发布配置会在项目根目录添加一个 .php-cs-fixer.dist.php
配置文件。您可以根据需要自定义此文件,然后将其提交到版本控制系统。
首次运行修复器时,会在项目根目录的 .php-cs-fixer.cache
中写入一个缓存文件。您应该忽略此文件,以免将其添加到版本控制系统。
echo '.php-cs-fixer.cache' >> .gitignore
使用
安装包后,您可以使用 vendor/bin/php-cs-fixer
的 on 子命令检查和修复代码格式。
自动修复代码风格
要自动修复项目中项目的代码风格,您可以使用以下命令
vendor/bin/php-cs-fixer fix
默认情况下,仅显示每个被修复文件的文件名。要查看每个更改的完整差异,请追加 --diff
标志。
检查代码风格违规
如果您想在不实际更改任何文件的情况下检查格式,应使用带有 --dry-run
标志的 fix
命令。
vendor/bin/php-cs-fixer fix --dry-run --diff
在 dry-run 模式下,任何违规都会导致命令返回非零退出代码。您可以使用此命令使 CI 构建或 git 提交钩失败。
Composer 脚本
要使贡献者更容易检查和修复项目中的代码风格,建议添加命令作为 composer 脚本
{ "scripts": { "check-style": "php-cs-fixer fix --dry-run --diff", "fix-style": "php-cs-fixer fix" } }
更多选项
有关完整选项列表,请参阅 PHP-CS-Fixer 文档。
配置
默认配置作为 .php-cs-fixer.dist.php
在项目根目录发布。您可以根据需要自定义此文件,例如更改搜索路径或应用的修复。
路径
您可以通过在传递给 Jubeki\LaravelCodeStyle\Config::setFinder
方法的 PhpCsFixer\Finder
实例上链式调用方法来更改搜索PHP文件的路径。
例如,要搜索 examples
目录,请附加 ->in('examples')
<?php require __DIR__ . '/vendor/autoload.php'; return (new Jubeki\LaravelCodeStyle\Config()) ->setFinder( PhpCsFixer\Finder::create() ->in(app_path()) // ... ->in('examples') ) // ...
默认路径是为Laravel应用程序设置的。如果您正在编写一个包,则路径辅助函数将不可用,您需要根据需要更改路径,例如 PhpCsFixer\Finder::create()->in(__DIR__)
。
有关完整选项列表,请参阅 Symfony Finder 文档。
规则
默认情况下,仅启用 Laravel Pint 预设。此预设强制执行许多不同的规则,可在 Jubeki\LaravelCodeStyle\Config 中找到。
您可以通过以下方式覆盖预设中的特定规则。例如,您可以禁用 no_unused_imports
规则如下
return (new Jubeki\LaravelCodeStyle\Config()) ->setFinder( // ... ) ->setRules([ 'no_unused_imports' => false, ]);
有关可用的规则完整列表,请参阅 php-cs-fixer 文档。
版本发布
只有当 Laravel Pint 项目发生重大变化时,才会增加主版本号。
否则,根据 Laravel Pint 的每个规则更改都只增加次要版本号。(这意味着可以添加、更改或删除规则)。
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
测试
$ composer test
贡献
有关详细信息,请参阅 CONTRIBUTING。
鸣谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。