GrumPHP 命令详解:从安装到自定义任务执行

GrumPHP 命令详解:从安装到自定义任务执行

grumphp A PHP code-quality tool grumphp 项目地址: https://gitcode.com/gh_mirrors/gr/grumphp

什么是 GrumPHP

GrumPHP 是一个 PHP 代码质量检查工具,它通过 Git 钩子(hooks)在代码提交前自动运行预设的检查任务。本文将详细介绍 GrumPHP 提供的各种命令及其使用场景,帮助开发者更好地利用这个工具提升代码质量。

安装与基础配置

GrumPHP 安装后会提供一个便捷的配置工具,通过以下命令可以生成基础配置文件:

php ./vendor/bin/grumphp configure

这个命令会在安装过程中自动执行,它会尝试根据项目情况生成最优的默认配置,无需用户交互。

Git 钩子管理

GrumPHP 的核心功能依赖于 Git 钩子,提供两个命令来启用或禁用:

php ./vendor/bin/grumphp git:init    # 启用 GrumPHP
php ./vendor/bin/grumphp git:deinit  # 禁用 GrumPHP

启用命令会在安装时由 Composer 插件自动触发,它会在项目的 .git/hooks 目录下创建必要的钩子脚本。

Git 钩子相关命令

GrumPHP 主要通过两个 Git 钩子命令来执行代码检查:

php ./vendor/bin/grumphp git:pre-commit  # 提交前检查
php ./vendor/bin/grumphp git:commit-msg  # 提交信息检查

这两个命令都支持通过标准输入(STDIN)接收 Git 的变更信息,这使得它们能够处理 git commit -a 这类命令触发的变更。如果没有提供标准输入,命令会自动获取当前暂存区的变更。

标准输入使用示例

# 检查所有变更
git diff | php ./vendor/bin/grumphp git:pre-commit

# 检查暂存区变更
git diff --staged | php ./vendor/bin/grumphp git:pre-commit

# 检查特定目录下的文件
git ls-files src | php ./vendor/bin/grumphp git:pre-commit

注意:使用标准输入时,命令将无法进行交互式提问。

手动执行检查

除了通过 Git 钩子自动触发外,你也可以手动运行全面检查:

php ./vendor/bin/grumphp run

这个命令会检查整个代码库,非常适合在持续集成(CI)环境中使用。

按测试套件执行

如果配置了测试套件,可以指定运行特定套件:

php ./vendor/bin/grumphp run --testsuite=mytestsuite

选择性执行任务

GrumPHP 允许你只运行特定的检查任务:

php ./vendor/bin/grumphp run --tasks=phpcs,phpmd

任务名称需要与 grumphp.yml 配置文件中 tasks 部分的键名完全匹配,多个任务用逗号分隔。

检查指定文件

run 命令同样支持通过标准输入指定要检查的文件:

# 检查所有变更文件
git diff | php ./vendor/bin/grumphp run

# 检查暂存区文件
git diff --staged | php ./vendor/bin/grumphp run

# 检查特定目录
git ls-files src | php ./vendor/bin/grumphp run

再次提醒:使用标准输入时无法进行交互式操作。

最佳实践建议

  1. 开发阶段:保持 GrumPHP 启用状态,让每次提交都自动检查代码质量
  2. CI 环境:使用 run 命令进行全面检查
  3. 大型项目:合理使用测试套件和特定任务执行,提高检查效率
  4. 临时检查:通过标准输入灵活指定要检查的文件范围

通过合理运用这些命令,你可以将代码质量检查无缝集成到开发流程中,在问题进入代码库前就将其拦截。

grumphp A PHP code-quality tool grumphp 项目地址: https://gitcode.com/gh_mirrors/gr/grumphp

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邱含悦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值