tightenco / duster
为 Laravel 应用自动配置 Tighten 的标准代码风格和编码规范。
Requires
- php: ^8.2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.59
- laravel-zero/framework: ^11.0
- laravel/pint: ^1.16
- nunomaduro/termwind: ^2.0
- spatie/invade: ^1.1
- squizlabs/php_codesniffer: ^3.10
- tightenco/tlint: ^9.3
- dev-main
- 3.x-dev
- v3.0.1
- v3.0.0
- 2.x-dev
- v2.7.6
- v2.7.5
- v2.7.4
- v2.7.3
- v2.7.2
- v2.7.1
- v2.7.0
- v2.6.0
- v2.5.0
- v2.4.0
- v2.3.0
- v2.2.0
- v2.1.1
- v2.1.0
- v2.0.1
- v2.0.0
- 1.x-dev
- v1.2.1
- v1.2.0
- v1.1.1
- v1.1.0
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- v0.7.0
- v0.6.0
- v0.5.7
- v0.5.6
- v0.5.5
- v0.5.4
- v0.5.3
- v0.5.2
- v0.5.1
- v0.5.0
- v0.4.1
- v0.4.0
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.2
- v0.2.1
- v0.2.0
- v0.2.0-rc.1
- v0.2.0-beta.6
- v0.2.0-beta.5
- v0.2.0-beta.4
- v0.2.0-beta.3
- v0.2.0-beta.2
- v0.2.0-beta.1
- v0.1.0-beta.2
- v0.1.0beta1
- v0.1.0alpha2
- v0.1.0alpha1
- dev-drift/change-namespace
This package is auto-updated.
Last update: 2024-08-24 20:29:04 UTC
README
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
部分,分为 lint
和 fix
。
键是命令的名称(与 --using
标志一起使用),值是传递给 Symfony\Component\Process\Process
的参数数组。
{ "scripts": { "lint": { "phpstan": ["./vendor/bin/phpstan", "analyse"] } }, "processTimeout": 120 }
Duster 在运行 lint
或 fix
时会自动提取这些脚本。默认情况下,附加脚本在 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 发送电子邮件,而不是使用问题跟踪器。
致谢
- Mat Stauffer
- Anthony Clark
- Tom Witkowski - 大部分原始想法和语法都受到了他的
elbgoods/ci-test-tools
包的启发 - 所有贡献者
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。