This package contains a set of rules to be added to the wonderful PHPStan static analyzer.
Those rules come from TheCodingMachine best practices. They are more "strict" than the default PHPStan rules and some may be controversial. We use those at TheCodingMachine, have found them to help us in our daily work, and ask anyone working with us to follow them.
- You should not throw the "Exception" base class directly but throw a sub-class instead.
- You should not have empty catch statements
- When throwing an exception inside a catch block, you should pass the catched exception as the "previous" exception
This is a PHP 7.1+ rule:
- You should use type-hinting when possible
- If not possible, you should use a Docblock to specify the type
- If type-hinting against an array, you should use a Docblock to further explain the content of the array
More about type-hinting related rules...
// Don't use superglobals (__GET __POST)...
// Always provide a "default" in a switch statement (and throw an exception if unexpected)
// Never use public properties
We assume that PHPStan is already installed in your project.
Let's add this package:
composer require --dev thecodingmachine/phpstan-strict-rules
Now, edit your phpstan.neon
file and add these rules:
includes:
- vendor/thecodingmachine/phpstan-strict-rules/phpstan-strict-rules.neon