Sniff
Simpler PHP code sniffer, built on top of PHP-CS-Fixer., (*1)
This project has been replaced by Pretty, (*2)
, (*3)
Why?
PHP-CS-Fixer can validate and fix the formatting of your code., (*4)
Sniff is a command that wraps php-cs-fixer to make it easier to use and configure., (*5)
It boils down to a simple .sniff.json file and 3 commands:, (*6)
$ sniff validate
Validates that your code complies with your coding standard. Useful in CI to run on each pull request or commit., (*7)
$ sniff diff
Validates that your code complies with your coding standard and outputs the diff necessary to fix the errors. Useful to review the fixes before applying them., (*8)
$ sniff fix
Fix your code to make it compliant with your coding standard., (*9)
Installation
composer require mnapoli/sniff
You can then invoke the command with:, (*10)
$ vendor/bin/sniff
You can also install it globally with Composer to be able to call it with sniff:, (*11)
composer global require mnapoli/sniff
- add the
~/.composer/bin path to your PATH
Configuration
Sniff is configured using a .sniff.json file:, (*12)
{
"paths": [
"src",
"tests"
],
"rules": {
"@PSR2": true
},
"allow-risky": true
}
-
paths (mandatory): list of directories or files to analyze
-
rules (default: @PSR2): list of rules to enable (detailed below)
-
allow-risky (default: no): allows you to set whether risky rules may run (a risky rule is a rule which could change the code's behaviour)
The complete list of rules is detailed in PHP-CS-Fixer's documentation., (*13)
Below is an example that enables PSR-2 + Symfony's coding standard, along with a few custom options:, (*14)
{
"paths": [ ... ],
"rules": {
"@PSR2": true,
"@Symfony": true,
"array_syntax": {
"syntax": "short"
},
"blank_line_before_return": false
}
}
Contributing
To run the tests:, (*15)
$ composer tests
Credits
This project is only a small wrapper above PHP-CS-Fixer, a huge thanks to the contributors of that tool., (*16)
Sniff is heavily inspired from Coke, a nice wrapper for PHP Code Sniffer., (*17)
License
Sniff is licensed under the MIT license., (*18)