sdieunidou / php-git-hooks
PHP项目的Git钩子。
Requires
- php: >=5.5
- fabpot/php-cs-fixer: 1.9.*
- fiunchinho/phpunit-randomizer: 2.0.*
- mockery/mockery: 0.9.*
- mybuilder/phpunit-accelerator: 1.1.*
- phpmd/phpmd: 2.2.*
- phpunit/php-code-coverage: 2.1.*
- phpunit/phpunit: 4.8.*
- phpunit/phpunit-mock-objects: 2.3.*
- squizlabs/php_codesniffer: 2.3.*
- symfony/config: 2.7.*
- symfony/dependency-injection: 2.7.*
- symfony/yaml: 2.7.*
Requires (Dev)
- composer/composer: ~1.0@dev
README
PHP项目的Git钩子
基于Git钩子脚本的PHP项目库。
安装
第1步:Composer
您必须将以下行添加到composer.json
文件中
{ "require-dev": { "bruli/php-git-hooks": "2.*@dev" } }
或者您可以在控制台输入
$ 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会询问您关于配置的问题。
Symfony2项目中的Composer配置。
在Symfony2项目中,您需要在您的composer.json中添加以下行
"scripts": { "post-install-cmd": [ ...other lines... "PhpGitHooks\\Application\\Composer\\ConfiguratorScript::buildConfig" ], "post-update-cmd": [ ...other lines... "PhpGitHooks\\Application\\Composer\\ConfiguratorScript::buildConfig" ]
重要:要使用2.X版本,您需要symfony 2.7版本。
Bin目录配置。
如果您的项目没有"bin"目录,您可以在您的compose.json文件中添加它。
"config": { "bin-dir": "bin" }
注意:对于Symfony项目不是必需的。
Git钩子的手动配置文件。
您可以通过创建一个包含以下内容的php-git-hooks.yml文件来配置php-git-hooks...
pre-commit: enabled: true execute: php-cs-fixer: enabled: true level: psr0 phpunit: true phplint: true phpcs: true phpmd: true commit-msg: enabled: true regular-expression: '#[0-9]{2,7}'
...或者您可以从vendor/bruli/php-git-hooks复制php-git-hooks.yml.sample。
从v1.3.*更新
php-git-hooks.yml文件中的Php-cs-fixer配置与2.0版本不兼容。您应该删除php-cs-fixer条目并执行"composer install"。
最简单的方法是删除php-git-hooks.yml并执行"composer install"。您将再次看到所有配置问题。
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/hooks/pre-commit .git/hooks
#对于commit-msg钩子
$cp vendor/bruli/php-git-hooks/hooks/commit-msg .git/hooks
执行。
####有效的pre-commit. ####失败的pre-commit.
致谢
许可证
php-git-hooks是在MIT许可证下发布的。有关详细信息,请参阅捆绑的LICENSE文件。