php-qa-hooks

Bunch of useful git hooks

MIT License

Downloads
6.4K
Stars
4
Committers
2

PHP QA git hooks

Git hooks for PHP commits quality assurance

Requirements

  • git
  • bash
  • PHP CLI
  • Core utils

Features

  • Customization by git config options
  • Check for PHP syntax before commit
  • Check for Git conflict markups before commit
  • Warn about PHP dump functions (var_dump(), var_export(), print_r())
  • Check PHP code style before push
  • Run PHPUnit tests before push
  • Colored output

Install via Composer

  1. Install package:

     composer require --dev nafigator/php-qa-hooks
    
  2. Add extra section to composer.json:

     "extra": {
         "scripts-dev": {
             "post-install-cmd": "vendor/nafigator/php-qa-hooks/src/hooks-install.sh"
         }
     }
    
  3. Place phpcs.xml into root of your project.

    NOTE: An example phpcs.xml file can be found in the PHP_CodeSniffer repository: phpcs.xml.dist

  4. Run composer install.

Uninstall

  1. Remove git config section check.php

     git config --remove-section check.php
    
  2. Add extra section to composer.json:

     "extra": {
         "scripts-dev": {
             "post-install-cmd": "vendor/nafigator/php-qa-hooks/src/hooks-uninstall.sh"
         }
     }
    

    Commit and push your changes to repository. When uninstall script completes cleanup for all work copies, move to next step.

  3. Remove package:

     composer remove --dev nafigator/php-qa-hooks
    
  4. Remove phpcs.xml from root ot your project.

Configuration

Example (colors off):

git config check.php.colors false

Available git config options:

check.php.colors [true|false]
check.php.conflicts [true|false]
check.php.dumps [true|false]
check.php.phpunit [true|false]
check.php.style [true|false]
check.php.syntax [true|false]

NOTE: PHPUnit disabled by default. You need to enable it manually.

Versioning

This software follows "Semantic Versioning" specifications. All function signatures declared as public API.

Read more on SemVer.org.

Package Rankings
Top 19.86% on Packagist.org
Badges
Extracted from project README
GitHub license GitHub release Conventional Commits Semantic Versioning