news 2026/8/22 13:18:35

为什么 Laravel 项目需要 Duster:一个命令统一 4 大代码规范检查工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
为什么 Laravel 项目需要 Duster:一个命令统一 4 大代码规范检查工具

为什么 Laravel 项目需要 Duster:一个命令统一 4 大代码规范检查工具

【免费下载链接】dusterAutomatic configuration for Laravel apps to apply Tighten's standard linting & code standards.项目地址: https://gitcode.com/gh_mirrors/du/duster

如果你正在维护一个 Laravel 项目,是否被各种 PHP 代码风格工具搞得焦头烂额?Duster 就是为解决这个问题而生的——它是一个开源的命令行工具,用一条命令就能自动应用 Tighten 公司默认的代码风格标准,统一跑通 4 大检查工具:TLint、PHP_CodeSniffer、PHP CS Fixer、Pint。无论是检查(lint)还是自动修复(fix),只需一个duster命令即可完成。

🧹 4 大工具如何各司其职

Duster 本身并不是又一个全新的检查器,而是把 4 个成熟工具"拧成一股绳",让它们协同工作、互不冲突。每个工具负责不同的检查维度:

工具职责定位核心能力
TLint补位其他工具检查 Laravel 和 PHP 中其他工具覆盖不到的问题(Tighten预设)
PHP_CodeSniffer发现无法自动修复的问题基于Tighten预设(近似 PSR-1 + Tighten 自定义规则)
PHP CS Fixer补充 Pint 不支持的规则自定义类成员排序规则(CustomOrderedClassElementsFixer
PintLaravel 官方代码风格使用默认Laravel预设 + 少量 Tighten 定制规则

这种"分工协作"的设计,正是 Duster 相比单一工具的最大优势——一次命令,覆盖所有检查维度

各工具在 Duster 中的接入实现分别位于:

  • TLint:app/Support/TLint.php
  • PHP_CodeSniffer:app/Support/PhpCodeSniffer.php
  • PHP CS Fixer:app/Support/PhpCsFixer.php
  • Pint:app/Support/Pint.php

🚀 一键安装步骤

得益于 Composer,整个安装过程仅需一条命令,无需任何额外配置:

composer require tightenco/duster --dev

安装完成后,你就可以在vendor/bin/目录下直接调用duster命令了。整个过程干净利落,对新手非常友好。

⚡ 最快配置与使用方法

检查代码规范(lint)

想一次性检查所有文件,只需运行:

./vendor/bin/duster lint

自动修复代码规范(fix)

发现大量可自动修复的问题?一条命令全部搞定:

./vendor/bin/duster fix

只检查有改动的文件(--dirty)

日常开发中,你可能只关心本次提交的代码是否规范。借助--dirty参数,Duster 会只检查 Git 中有未提交改动的文件,大幅缩短等待时间:

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

查看全部可用命令

./vendor/bin/duster # 或 ./vendor/bin/duster commands

💡Sail 用户专属技巧:如果你使用 Laravel Sail 容器环境,可以通过./vendor/bin/sail bin duster直接在容器内执行,省去本地安装 PHP 的麻烦。

🛠️ 用 duster.json 自定义检查范围

Duster 默认会扫描 Laravel 项目的所有标准目录。但如果你想精确控制哪些文件参与检查,只需在项目根目录创建一个duster.json配置文件:

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

这个配置支持**通配符(wildcard)**匹配,能灵活应对各种复杂的项目结构。配置解析的核心逻辑位于 app/Support/DusterConfig.php。

此外,Duster 还内置了vendor/node_modules/storage/等常见目录的默认排除规则,让你开箱即用,不必反复排除。

你还可以在duster.jsonscripts字段中挂载额外的检查脚本(比如 PHPStan),Duster 会在 lint 或 fix 时自动一并执行:

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

本仓库自身的 duster.json 就是一个很好的参考示例,它展示了如何挂载 PHPStan 和 Pest 测试。

想控制具体使用哪些工具、以什么顺序执行?使用--using参数即可自定义工具链:

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

🤖 接入 CI/CD 与 Git Hooks,让规范"永不被绕过"

光靠开发者自觉是不够的。Duster 提供了两套"自动化守卫"方案,确保代码规范在团队协作中始终得到执行:

方案一:发布 GitHub Actions 配置

./vendor/bin/duster github-actions

执行后,Duster 会自动生成 lint 和 fix 两种工作流文件,让每一次 CI 构建都自动检查代码风格。

方案二:发布 Husky Hooks

./vendor/bin/duster husky-hooks

配置后,每次git commit都会自动触发 Duster 检查,把不规范的代码拦截在提交之前

🐳容器环境提示:如果你在容器化环境(未本地安装 PHP)中使用 Husky Hooks,可用--env参数指定环境,例如./vendor/bin/duster husky-hooks --env=ddev。支持ddevwardenlandosail四种环境。

❓ 常见问题速览

问:Duster 和单独的 Pint 有什么区别?

答:Pint 只覆盖 Laravel 官方风格,而 Duster 在它之上叠加了 TLint、PHP_CodeSniffer、PHP CS Fixer 三个工具,覆盖面更广,且统一了配置和入口。

问:如何调整某个工具的规则?

答:各工具仍保留独立的配置文件约定,例如 PHP_CodeSniffer 使用.phpcs.xml.dist、PHP CS Fixer 使用.php-cs-fixer.dist.php、Pint 使用 standards/pint.json 作为起点。你可以在此基础上做个性化定制。

问:Duster 对 PHP 版本有要求吗?

答:需要 PHP 8.2 及以上版本。

✨ 写在最后

Duster 用"一个命令统一 4 大工具"的极简设计,把 Laravel 项目中原本繁琐、分散的代码规范检查工作彻底自动化了。它既适合个人开发者快速规范新项目,也适合团队协作中统一代码风格、减少 Code Review 中的"风格之争"。如果你的 Laravel 项目还没有一套稳定的代码风格标准,不妨现在就composer require tightenco/duster --dev,一条命令开启规范之旅。

【免费下载链接】dusterAutomatic configuration for Laravel apps to apply Tighten's standard linting & code standards.项目地址: https://gitcode.com/gh_mirrors/du/duster

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 13:17:34

OptiCommPy模拟线性光纤通道

文章目录原理实现示例原理 在实际光纤中,光信号传输存在诸多非线性效应,比如自相位调制 SPM、交叉相位调制 XPM、四波混频 FWM 等。而对于线性模型而言,则只考虑光线衰减和色度色散这两方面的因素。 从数学角度来说,线性衰减的过…

作者头像 李华
网站建设 2026/8/22 13:16:52

3 步完成量化回测可视化:backtrader-pyqt-ui 实战

3 步完成量化回测可视化:backtrader-pyqt-ui 实战 【免费下载链接】backtrader-pyqt-ui 项目地址: https://gitcode.com/gh_mirrors/bac/backtrader-pyqt-ui 打开界面,改一个参数,点 Run,几秒后图表刷新出新标记——backt…

作者头像 李华
网站建设 2026/8/22 13:16:00

第234篇 运动规划面试高频题——面试官最爱问的15个规划问题

前面十篇(224-233)讲了运动规划的各种算法——Reed-Shepp曲线、混合A*、轨迹优化、B样条、TOPP、碰撞检测、CHOMP/TrajOpt。今天做一个总结:把面试官最爱问的15个运动规划问题整理在一起,每个问题给出精炼的回答要点。面试运动规划…

作者头像 李华
网站建设 2026/8/22 13:15:05

开源程序启动器OpenProgram:打造个人效率中枢的实践指南

1. 项目概述:一个开源的“程序启动器”能做什么?如果你和我一样,电脑里装满了各种开发工具、设计软件、效率应用和随手写的小脚本,那么每天打开电脑后,第一件头疼的事可能就是:我要从哪里启动它们&#xff…

作者头像 李华