tightenco/duster

为 Laravel 应用自动配置 Tighten 的标准代码风格和编码规范。

安装次数: 783,381

依赖者: 125

建议者: 0

安全性: 0

星标: 442

关注者: 14

分支: 13

开放性问题: 4

类型:项目


README

Project Banner

Duster

自动为 Laravel 应用应用 Tighten 的默认代码风格。

Duster 是基于以下工具构建的

  • TLint:检查 Laravel 和 PHP 代码中其他工具未覆盖的问题
    • 使用默认的 Tighten 预设
  • PHP_CodeSniffer:检查无法自动修复的问题
    • 使用 Tighten 预设,主要是 PSR1,还有一些 Tighten 特定的规则
  • PHP CS Fixer:添加 Laravel Pint 不支持的自定义规则
    • CustomOrderedClassElementsFixer Tighten 特定的类元素顺序
  • Pint:Laravel 的代码风格规则(有一些 Tighten 特定的自定义修改)
    • 使用默认的 Laravel 预设和一些 Tighten 特定的规则

您可以在 风格指南 中查看编译后的规则及其示例。

安装

您可以通过 composer 安装此包

composer require tightenco/duster --dev

可选地,您可以发布 GitHub Actions 配置

./vendor/bin/duster github-actions

或者,您可以发布 Husky Hooks

./vendor/bin/duster husky-hooks

使用

一次性检查所有内容

./vendor/bin/duster lint

一次性修复所有内容

./vendor/bin/duster fix

要检查 Git 中未提交更改的文件,请使用 --dirty 选项

./vendor/bin/duster lint --dirty
#or
./vendor/bin/duster fix --dirty

查看所有可用命令

./vendor/bin/duster
#or
./vendor/bin/duster commands

与 Sail 一起使用

./vendor/bin/sail php ./vendor/bin/duster

或者,Sail 有一个 bin 脚本,它简化了包二进制文件的执行,所以您可以这样做

./vendor/bin/sail bin duster

自定义

如果您需要为每个工具包含或排除文件或目录,您可以在项目根目录中创建一个 duster.json 配置文件

{
    "include": [
        "bin",
        "scripts",
        "src",
        "tests"
    ],
    "exclude": [
        "tests/fixtures"
        "**/folderToExclude/**"
    ]
}

要作为 Duster 的一部分运行额外的脚本,首先将它们添加到 duster.json 中的 scripts 部分,分为 lintfix

键是命令的名称(与 --using 标志一起使用),值是传递给 Symfony\Component\Process\Process 的参数数组。

{
    "scripts": {
        "lint": {
            "phpstan": ["./vendor/bin/phpstan", "analyse"]
        }
    },
    "processTimeout": 120
}

Duster 在运行 lintfix 时会自动提取这些脚本。默认情况下,附加脚本在 60 秒后超时。您可以使用 processTimeout 键覆盖此设置。

要自定义 Duster 运行的工具或它们的执行顺序,请使用 --using 标志并提供一个以逗号分隔的命令列表

./vendor/bin/duster lint --using="phpstan,tlint,pint"

TLint

在项目根目录中创建一个 tlint.json 文件。了解更多信息,请参阅 TLint 文档

PHP_CodeSniffer

在项目根目录中创建一个 .phpcs.xml.dist 文件,包含以下内容

<?xml version="1.0"?>
<ruleset>
    <file>app</file>
    <file>config</file>
    <file>database</file>
    <file>public</file>
    <file>resources</file>
    <file>routes</file>
    <file>tests</file>

    <rule ref="Tighten"/>
</ruleset>

现在您可以在 <rule ref="Tighten"/> 行下添加自定义设置,甚至禁用 Tighten 规则以使用您自己的规则集。了解更多信息,请参阅此 入门文章

PHP CS Fixer

在项目根目录中创建一个 .php-cs-fixer.dist.php 文件,内容来自 Duster 的 .php-cs-fixer.dist.php 文件。了解更多信息,请参阅 PHP CS Fixer 文档

Pint

在您的项目根目录下创建一个 pint.json 文件,您可以使用 Duster 的 pint.json 文件 作为起点。更多详细信息请参考 Pint 文档

GitHub Action

有一个 GitHub Action 可以用来清理您的流程。

警告 注意!提交到您仓库的工作流程将停止任何正在运行的工作流程,并不会触发另一个工作流程运行。

一个解决方案是在 Duster 完成后更新那些工作流程的触发器来运行您的其他工作流程

on:
  # Commits made in Duster Fix will not trigger any workflows
  # This workflow is configured to run after Duster finishes
  workflow_run:
    workflows: ["Duster Fix"]
    types:
      - completed

贡献

有关详细信息,请参阅 CONTRIBUTING

安全性

如果您发现任何安全问题,请通过 hello@tighten.co 发送电子邮件,而不是使用问题跟踪器。

致谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件