phpro / grumphp

一个启用源代码质量检查的composer插件。

维护者

详细信息

github.com/phpro/grumphp

源代码

问题

安装次数: 10,508,313

依赖项: 1,076

建议者: 3

安全: 0

星星: 4,137

关注者: 81

分支: 430

开放性问题: 19

类型:composer-plugin

v2.8.0 2024-09-16 08:25 UTC

README

Github Actions AppVeyor Installs Packagist

Twitter Join the chat at https://gitter.im/phpro/grumphp

GrumPHP

厌倦了反复捍卫代码质量?GrumPHP 会帮你做到!这个composer插件会在你的包仓库中注册一些git钩子。当有人提交更改时,GrumPHP 将对提交的代码执行一些测试。如果测试失败,你将无法提交更改。这个实用的工具不仅会提高你的代码库,还会让你的同事学会按照团队确定的最佳实践编写更好的代码。

GrumPHP内置了一套常见任务。你将能够以最少的配置使用GrumPHP。

我们不希望让你感到无聊,所以简单地说:自己安装它,释放GrumPHP的力量!

演示

demo

安装

为了使此包正常工作,你必须确保以下工具在命令行上可发现:

  • php
  • composer
  • git

此包是composer插件,应使用composer将其安装到你的项目开发依赖项中

不依赖项安装GrumPHP的phar

composer require --dev phpro/grumphp-shim

带有依赖项安装GrumPHP

composer require --dev phpro/grumphp

通过phive安装不带依赖项和自动化git钩子的GrumPHP

phive install grumphp

当包安装完成后,GrumPHP将自动附加到你的项目的git钩子。你将在composer日志中看到以下消息:

小心!GrumPHP正在检查你的提交!

GrumPHP永远不会强迫你使用特定的任务。你可以选择适合你需求的任务,并且可以随时激活或停用任何任务!请参阅composer.json中的suggest部分。

注意:除非你运行带有--no-plugins--no-scriptscomposer install,否则GrumPHP将覆盖现有的钩子。我们确实创建了你的git钩子的备份,但在尝试安装GrumPHP之前,最好确保你也备份了自定义钩子。

安装GrumPHP时遇到问题?了解如何

配置

GrumPHP中的某些事物可以在项目根目录(运行grumphp命令的目录)中的grumphp.ymlgrumphp.yml.distgrumphp.dist.yml文件中进行配置。你可以在composer.json或控制台命令的--config选项中指定自定义配置文件名和位置。

# grumphp.yml
grumphp:
    hooks_dir: ~
    hooks_preset: local
    git_hook_variables:
        VAGRANT_HOST_DIR: .
        VAGRANT_PROJECT_DIR: /var/www
        EXEC_GRUMPHP_COMMAND: exec
        ENV: {}
    stop_on_failure: false
    ignore_unstaged_changes: false
    hide_circumvention_tip: false
    process_timeout: 60
    ascii:
        failed: grumphp-grumpy.txt
        succeeded: grumphp-happy.txt
    parallel:
        enabled: true
        max_workers: 32
    fixer:
        enabled: true
        fix_by_default: false
    environment:
        files: []
        variables: {}
        paths: []
    tasks: {}
    testsuites: []
    extensions: []

配置的详细信息分为以下部分。

命令

由于GrumPHP只是一个CLI工具,因此可以通过以下命令触发这些命令:

兼容性

GrumPHP与PHP 5.6或更高版本兼容。

此包已在以下git客户端上进行了测试:

  • CLI Unix
  • CLI Mac
  • CLI Windows
  • PhpStorm Git
  • Atlassian SourceTree
  • Syntevo SmartGit

路线图

有许多任务可供使用,以确保您的团队能够编写出色的代码。我们一直在寻找支持新任务。如果您忘记了某个任务,请随意提交问题或创建一个pull request。

您是否缺少某个功能或发现了bug?请在问题追踪器中记录!想要帮忙?请随意联系我们!

常见问题解答

关于

提交bug和功能请求

bug和功能请求在GitHub上进行跟踪。在贡献代码之前,请查看我们的规则。

许可证

GrumPHP遵循MIT许可证