bruli/php-git-hooks

PHP项目的Git钩子。

v5.9 2019-12-13 13:01 UTC

README

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Total Downloads Latest Unstable Version License SensioLabsInsight Donate button

PHP项目的Git钩子。

基于git钩子脚本的PHP项目库。

安装

步骤 1: Composer

您必须将以下行添加到composer.json文件中,以与Symfony 3.0一起使用

{
    "require-dev": {
        "bruli/php-git-hooks": "~4.1"
    }
}

对于Symfony 2.X版本,您可以使用"~2.0"。

或者您可以在控制台写下

$ composer require bruli/php-git-hooks --dev

如果您没有composer,您需要下载二进制文件并运行它

$ wget https://getcomposer.org.cn/composer.phar
# or
$ curl -O https://getcomposer.org.cn/composer.phar

$ php composer.phar install

步骤 2: 配置

使用Composer

首先,您需要将以下行添加到您的composer.json

"scripts": {
    "post-install-cmd": [
      "PhpGitHooks\\Infrastructure\\Composer\\ConfiguratorScript::buildConfig"
    ],
    "post-update-cmd": [
      "PhpGitHooks\\Infrastructure\\Composer\\ConfiguratorScript::buildConfig"
    ]
}

警告: "PhpGitHooks\Application\Composer\ConfiguratorScript::buildConfig" 已弃用。您需要通过当前条目进行更改。

然后,运行$ composer install,Composer应询问您配置问题

二进制目录配置。

如果您的项目没有"bin/"目录,您可以在composer.json文件中添加此目录。

"config": {
    "bin-dir": "bin"
}

注意:这对于Symfony项目不是必需的。

git钩子的手动配置文件。

您可以通过创建一个php-git-hooks.yml文件来配置php-git-hooks...

pre-commit:
  enabled: true
  execute:
    php-cs-fixer:
        enabled:  true
        levels:
            psr0:       true
            psr1:       true
            psr2:       true
            symfony:    true
        options: "--fixers=short_array_syntax --diff"
    phpunit:
        enabled:     true
        random-mode: true
        options:     '<some options>'
        strict-coverage:
             enabled:       true
             minimum:       90
        guard-coverage:
             enabled: true
             message: 'WARNING!!, your code coverage is lower.'
    phplint:         true
    phpcs:
        enabled:     true
        standard:    PSR2
    phpmd:
        enabled:     true
        options:     '<some options>'
    composer:        true
  message:
    right-message: 'HEY, GOOD JOB!!'
    error-message: 'FIX YOUR CODE!!'
commit-msg:
    enabled: true
    regular-expression: '#[0-9]{2,7}'
pre-push:
    enabled: true
    execute:
      phpunit:
        enabled:     true
        random-mode: true
        options:     '<some options>'
    strict-coverage:
        enabled:       true
        minimum:       90
    guard-coverage:
        enabled: true
        message: 'WARNING!!, your code coverage is lower.'
    message:
      right-message: 'PUSH IT!!'
      error-message: 'YOU CAN NOT PUSH CODE!!'

...或者您可以从vendor/bruli/php-git-hooks复制php-git-hooks.yml.sample。

phpunit的配置文件。

如果您想使用phpunit工具,您必须在项目根目录中创建一个phpunit.xml.dist。或者您可以从vendor/bruli/php-git-hooks/phpunit.xml.dist复制到项目根目录。

phpmd的配置文件。

与phpunit相同的情况。您必须在项目根目录中创建PmdRules.xml,或者从php-git-hook目录复制。

步骤 3: 启用钩子。

启用钩子最简单的方法是将钩子文件复制到您的.git/hooks目录。

对于pre-commit钩子

您可以使用Composer或手动执行来启用此钩子

$ cp vendor/bruli/php-git-hooks/src/PhpGitHooks/Infrastructure/Hook/pre-commit .git/hooks

对于commit-msg钩子

$ cp vendor/bruli/php-git-hooks/src/PhpGitHooks/Infrastructure/Hook/commit-msg .git/hooks

对于pre-push钩子

$ cp vendor/bruli/php-git-hooks/src/PhpGitHooks/Infrastructure/Hook/pre-push .git/hooks

执行。

有效的pre-commit。

失败的pre-commit。

鸣谢

许可证

php-git-hooks在MIT许可证下发布。有关详细信息,请参阅附带的LICENSE文件。