bruli / php-git-hooks
Git hooks for PHP projects.
Installs: 358 183
Dependents: 6
Suggesters: 0
Security: 0
Stars: 676
Watchers: 31
Forks: 107
Open Issues: 16
Requires
- php: ^7.1
- 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: ^2.1
- phpmd/phpmd: ~2.6
- phpunit/phpunit: ~6.0|~7.0|~8
- 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: ^1.4
- fzaninotto/faker: ^1.6
- mockery/mockery: ~0.9|~1
- v5.9
- v5.8
- v5.7.1
- v5.7
- v5.6
- v5.5
- v5.4.1
- v5.4
- v5.3
- v5.2.1
- v5.2
- v5.1
- v5.0
- 4.12
- v4.11.1
- v4.11
- v4.10
- v4.9
- v4.8.1
- v4.8
- v4.7.1
- v4.7
- v4.6.1
- v4.6
- v4.5.1
- v4.5
- v4.4
- v4.3
- v4.2
- v4.1.6
- v4.1.5
- v4.1.4
- v4.1.3
- v4.1.2
- v4.1.1
- v4.1
- v4.0
- v3.1.0
- v3.0.0
- dev-master / 2.x-dev
- v2.5.0
- v2.4.1
- v2.4.0
- v2.3.0
- v2.2.0
- v2.1.1
- v2.1.0
- v2.0.1
- v2.0.0
- v1.3.1
- v1.3.0
- v1.2.1
- v1.2.0
- 1.2-alpha
- 1.1-alpha
- 1.0-alpha
This package is auto-updated.
Last update: 2024-10-19 10:53:55 UTC
README
Git hooks for PHP projects.
Library based in git hook scripts for PHP projects.
Installation
Step 1: Composer
You must add the following line to the composer.json
file to use with Symfony 3.0:
{ "require-dev": { "bruli/php-git-hooks": "~4.1" } }
You can use "~2.0" for Symfony version 2.X.
Or you can write in your console:
$ composer require bruli/php-git-hooks --dev
If you don't have composer, you need download the binary file and run it:
$ wget http://getcomposer.org/composer.phar
# or
$ curl -O http://getcomposer.org/composer.phar
$ php composer.phar install
Step 2: Configuration
Using Composer
First, you will need to add the following lines to your composer.json
"scripts": { "post-install-cmd": [ "PhpGitHooks\\Infrastructure\\Composer\\ConfiguratorScript::buildConfig" ], "post-update-cmd": [ "PhpGitHooks\\Infrastructure\\Composer\\ConfiguratorScript::buildConfig" ] }
WARNING: "PhpGitHooks\Application\Composer\ConfiguratorScript::buildConfig" is deprecated. You need change by current entry.
Then, launch $ composer install
and composer should ask you about configuration
Bin directory configuration.
If your project doesn't have a "bin/" directory, you can add this in your composer.json
file.
"config": { "bin-dir": "bin" }
Note: This is not necessary for Symfony projects.
Manual config file for git hooks.
You can configure php-git-hooks, creating a php-git-hooks.yml file with...
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!!'
... or you can copy php-git-hooks.yml.sample from vendor/bruli/php-git-hooks.
Config file for phpunit.
If you want use phpunit tool, you must create a phpunit.xml.dist in your project root directory. Alternatively you can copy from vendor/bruli/php-git-hooks/phpunit.xml.dist in your project root directory.
Config file for phpmd.
The same case that phpunit. You must create a PmdRules.xml in your project root directory or copy from php-git-hook directory.
Step 3: Enabling hooks.
The most easy way to enable hook is copy hook file into your .git/hooks directory.
For pre-commit hook:
You can enable this hooks with composer or manually executing
$ cp vendor/bruli/php-git-hooks/src/PhpGitHooks/Infrastructure/Hook/pre-commit .git/hooks
For commit-msg hook:
$ cp vendor/bruli/php-git-hooks/src/PhpGitHooks/Infrastructure/Hook/commit-msg .git/hooks
For pre-push hook:
$ cp vendor/bruli/php-git-hooks/src/PhpGitHooks/Infrastructure/Hook/pre-push .git/hooks
execute.
Valid pre-commit.
Fail pre-commit.
Credits
- Pablo Braulio (@brulics)
- All contributors
License
php-git-hooks is released under the MIT License. See the bundled LICENSE file for details.