Skip to content

nafigator/php-qa-hooks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub license GitHub release Conventional Commits Semantic Versioning

PHP QA git hooks

Git hooks for PHP commits quality assurance

pre-commit output example

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.