Runs a set of quality assurance tools for PHP.
This is a work in progress!
PHP Hound runs a set of quality assurance tools for PHP and reduce results to a single beautiful report.
It currently supports:
- PHPCodeSniffer: code style and identation according to PSR-2.
- PHPCopyPasteDetector: duplicated code detection.
- PHPMessDetector: checks for complex, unused, broken or unclear code.
PHP Hound can be installed through Composer.
To install it locally, run the following command:
composer require alanwillms/php-hound
Then you can execute PHP Hound by running
You can install PHP Hound globally with:
composer global require alanwillms/php-hound
Then you can add
~/.composer/bin directory to your
PATH, so you can
php-hound to run it from anywhere. If you want to do this,
add the following to your
If you want to apply the changes to your current terminal session, run
source ~/.profile (or
# Analyze current directory files php-hound # Analyze "informed/directory/" files php-hound informed/directory/ # Analyze "script.php" file php-hound script.php
You can run
php-hound --help to display a list of all available options.
php-hound [optional arguments] [path to be analysed] Optional Arguments: -f format, --format format (default: text) Output format -h, --help Prints a usage statement -i ignore, --ignore ignore (default: vendor,tests,features,spec) Ignore a comma-separated list of directories -v, --version Prints installed version
If you have a huge base of legacy code, it's really hard to fix all code issues at the same time, in a single commit.
PHP Hound helps you to gradually fix your code by only warning about issues found in the files and lines touched by a branch or commit. All other files or lines will be ignored.
That's pretty easy to achieve:
# Usage: # php-hound --git-diff <commits or branches to compare> <target directory> # Only return issues found on lines and files changed on the "windows10" branch: php-hound --git-diff master..windows10 /path/to/git/repo # Only return issues found on lines and files changed between two commits php-hound --git-diff b28a1df..4fff883 /path/to/git/repo