andriipidhainyi / php-git-hooks
PHP项目的Git钩子。
Requires
- php: >=7.4
- beberlei/assert: ~2.7
- bruli/event-bus-bundle: ^0.5
- bruli/ignore-files: ~1.0
- bruli/php-value-objects: ~0.1
- fiunchinho/phpunit-randomizer: ~3.0|~4.0
- friendsofphp/php-cs-fixer: ^3
- phpmd/phpmd: ~2.6
- phpunit/phpunit: ~6.0|~7.0|~8|~9|~10
- seld/jsonlint: ~1.5
- squizlabs/php_codesniffer: ~3.0
- symfony/config: ~4.0
- symfony/dependency-injection: ~4.0
- symfony/flex: ~1.0
- symfony/yaml: ~4.0
Requires (Dev)
- composer/composer: ^2.1.7
- fakerphp/faker: 1.23.x
- mockery/mockery: ~0.9|~1
This package is auto-updated.
Last update: 2024-10-03 08:41:23 UTC
README
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文件。