
深度定制 Duster单独配置 TLint、PHP_CodeSniffer、PHP CS Fixer 与 Pint 的 4 种方法【免费下载链接】dusterAutomatic configuration for Laravel apps to apply Tightens standard linting code standards.项目地址: https://gitcode.com/gh_mirrors/du/dusterDuster 是一款面向 Laravel 应用的 PHP 代码风格与代码规范自动化工具它把 TLint、PHP_CodeSniffer、PHP CS Fixer 和 Pint 四大 Lint 工具整合进一条命令自动应用 Tighten 公司的编码标准。本文是一份面向新手的完整指南带你掌握深度定制 Duster 的 4 种方法用duster.json控制扫描范围、用--using参数挑选工具、为每个工具单独创建配置文件、以及接入自定义脚本。为什么需要定制先看 Duster 的四大核心工具Duster 开箱即用但团队往往希望按自己的习惯微调规则。每个工具分工不同配置入口也不同工具职责项目根目录配置文件TLint检查 Laravel / PHP 中其他工具不覆盖的问题使用 Tighten 预设tlint.jsonPHP_CodeSniffer检测无法自动修复的问题如 TODO 注释、命名违规.phpcs.xml.distPHP CS Fixer补充 Pint 不支持的自定义规则例如 Tighten 专属的类成员排序.php-cs-fixer.dist.phpPint应用 Laravel 代码风格规则含少量 Tighten 定制pint.json日常使用只需两条命令./vendor/bin/duster lint # 检查全部问题 ./vendor/bin/duster fix # 自动修复全部问题方法一用 duster.json 统一控制扫描范围在项目根目录创建duster.json是所有定制方式的起点。它支持三个常用字段{ include: [bin, scripts, src, tests], exclude: [tests/fixtures, **/folderToExclude/**], scripts: {} }include/exclude统一决定四个工具各自扫描哪些目录支持**通配符。默认已自动排除vendor/、node_modules/、storage/等目录无需重复配置逻辑见 app/Support/DusterConfig.php。processTimeout自定义脚本的超时时间默认 60 秒。Duster 项目自己的配置就是一个很好的参考模板见 duster.json。方法二用 --using 参数只运行指定工具默认情况下duster lint会依次运行全部工具。如果只想用其中某几个可以加--using参数传入逗号分隔的工具名./vendor/bin/duster lint --usingtlint,pint可用的工具名参数对应工具tlintTLintphpcs或phpcodesnifferPHP_CodeSnifferphp-cs-fixer或phpcsfixerPHP CS FixerpintPint另外duster.json中注册的自定义脚本名也可以写在这里。工具映射逻辑在 app/Concerns/GetsCleaner.php 中实现运行./vendor/bin/duster commands可查看完整命令清单。方法三为每个工具单独创建配置文件核心方法这是深度定制的关键在项目根目录创建对应工具的配置文件后Duster 会自动优先使用它替代内置默认值。3.1 TLint 配置创建 tlint.json在项目根目录创建tlint.json即可覆盖 TLint 的默认 Tighten 预设。Duster 会把duster.json里的exclude目录自动合并进 TLint 的排除列表实现逻辑见 app/Support/TLint.php。3.2 PHP_CodeSniffer 配置创建 .phpcs.xml.dist创建.phpcs.xml.dist文件并引用 Tighten 标准?xml version1.0? ruleset fileapp/file filetests/file rule refTighten/ /ruleset之后你可以在rule refTighten/下方追加自定义规则或直接删掉它换成自己的规则集。Duster 会自动探测四种文件名.phpcs.xml、phpcs.xml、.phpcs.xml.dist、phpcs.xml.dist探测顺序见 app/Support/PhpCodeSniffer.php。Tighten 内置规则集源码位于 standards/Tighten/。3.3 PHP CS Fixer 配置创建 .php-cs-fixer.dist.php复制 Duster 内置的 PHP CS Fixer 配置到项目根目录再按需增删规则即可。Duster 通过它运行几个自定义 Fixer例如 Tighten 专属的类成员排序规则源码位于 app/Fixer/ClassNotation/。若项目中没有该文件会自动回退到内置配置探测逻辑见 app/Support/PhpCsFixer.php。3.4 Pint 配置创建 pint.json最简单的一个创建pint.json建议直接以 Duster 内置的 standards/pint.json 为起点里面已经包含了concat_space、ordered_imports等 Tighten 定制规则。项目根目录存在pint.json时Duster 会自动优先使用它。 小技巧只检查 Git 有未提交改动的文件时加--dirty参数即可大幅提速./vendor/bin/duster lint --dirty方法四用 scripts 把自定义脚本接入 Duster除了内置四件套你还可以把 PHPStan、Pest 等任意命令行脚本纳入 Duster 统一调度。在duster.json的scripts字段中按lint/fix分组注册{ scripts: { lint: { phpstan: [./vendor/bin/phpstan, analyse] } }, processTimeout: 120 }注册后 Duster 运行lint或fix时会自动执行这些脚本也可以用--usingphpstan,pint单独指定。该用法在 Duster 项目自身的 duster.json 中就有完整示例。进阶把定制后的 Duster 接入 CI 与 Git 钩子配置好之后别忘了让它在团队流程中自动运行发布 GitHub Actions 工作流./vendor/bin/duster github-actions模板文件位于 stubs/github-actions/发布 Husky Git 钩子./vendor/bin/duster husky-hooks支持--envsail等容器环境钩子脚本见 stubs/husky-hooks/总结4 种方法速查表定制需求方法入口控制扫描/排除目录方法一根目录duster.json只运行部分工具方法二--using命令行参数修改具体 Lint 规则方法三tlint.json/.phpcs.xml.dist/.php-cs-fixer.dist.php/pint.json接入 PHPStan 等外部工具方法四duster.json的scripts字段各工具配置覆盖行为的功能测试可作为行为参考位于 tests/Feature/如PintConfigOverrideTest.php、TLintConfigOverrideTest.php等。掌握这 4 种方法后你就可以把 Duster 打造成完全符合团队风格的 Laravel 代码规范守卫了 【免费下载链接】dusterAutomatic configuration for Laravel apps to apply Tightens standard linting code standards.项目地址: https://gitcode.com/gh_mirrors/du/duster创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考