alanwillms / php-hound
Runs a set of quality assurance tools for PHP.
Requires
- league/climate: 3.1.*
- league/csv: ^7.1
- league/plates: ^3.1
- phpmd/phpmd: 2.2.*
- sabre/xml: ^1.1
- sebastian/diff: ~1.3
- sebastian/git: ~2.0
- sebastian/phpcpd: 2.*
- squizlabs/php_codesniffer: 2.*
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- phpunit/phpunit: 4.7.*
README
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.
Installation
PHP Hound can be installed through Composer.
Local installation
To install it locally, run the following command:
composer require alanwillms/php-hound
Then you can execute PHP Hound by running ./vendor/bin/php-hound
.
Global installation
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
simply type php-hound
to run it from anywhere. If you want to do this,
add the following to your ~/.profile
(or ~/.bashrc
) file:
export PATH="$HOME/.composer/vendor/bin:$PATH"
If you want to apply the changes to your current terminal session, run
source ~/.profile
(or source ~/bashrc
).
Command line usage
Basic usage:
# 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
Gradually fix legacy code
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