jubeki/laravel-code-style

结合自定义修复器和Laravel Pint的规则集,修复Laravel应用程序/包中的代码风格。

2.15.0 2024-08-13 12:30 UTC

README

Laravel 代码风格

结合自定义修复器和Laravel Pint的规则集

GitHub Workflow Status Downloads Total License Type Latest released version

Supports Laravel 9.x and 10.x Supports PHP 8.0, 8.1 and 8.2

简介

此包为使用与 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)。有关更多信息,请参阅 许可证文件