A ruleset for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by ircmaxell's password_compat library.
A rulesets for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by the @ircmaxell's password_compat polyfill library.
This ruleset prevents false positives from the PHPCompatibility standard by excluding back-fills and poly-fills which are provided by the
Use the latest stable release of PHP_CodeSniffer for the best results. The minimum recommended version of PHP_CodeSniffer is version 2.6.0.
The only supported installation method is via Composer.
If you don't have a Composer plugin installed to manage the
installed_paths setting for PHP_CodeSniffer, run the following from the command-line:
composer config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true composer require --dev dealerdirect/phpcodesniffer-composer-installer:"^0.7" phpcompatibility/phpcompatibility-passwordcompat:"*"
If you already have a Composer PHP_CodeSniffer plugin installed, run:
composer require --dev phpcompatibility/phpcompatibility-passwordcompat:"*"
If all went well, you will now see that the
PHPCompatibilityPasswordCompat standards are installed for PHP_CodeSniffer.
Now you can use the following command to inspect the code in your project for PHP cross-version compatibility:
./vendor/bin/phpcs -p . --standard=PHPCompatibilityPasswordCompat
By default, you will only receive notifications about deprecated and/or removed PHP features.
To get the most out of the PHPCompatibilityPasswordCompat standard, you should specify a
testVersion to check against. That will enable the checks for both deprecated/removed PHP features as well as the detection of code using new PHP features.
# For a project which should be compatible with PHP 5.3 up to and including PHP 7.0: ./vendor/bin/phpcs -p . --standard=PHPCompatibilityPasswordCompat --runtime-set testVersion 5.3-7.0 # For a project which should be compatible with PHP 5.4 and higher: ./vendor/bin/phpcs -p . --standard=PHPCompatibilityPasswordCompat --runtime-set testVersion 5.4-
For more detailed information about setting the
testVersion, see the README of the generic PHPCompatibility standard.
./vendor/bin/phpcs -p . --standard=PHPCompatibilityPasswordCompat --extensions=php --runtime-set testVersion 5.3-
All code within the PHPCompatibility organisation is released under the GNU Lesser General Public License (LGPL). For more information, visit https://www.gnu.org/copyleft/lesser.html
- README: Updated the installation instructions for compatibility with Composer >= 2.2.
- Composer: The package will now identify itself as a static analysis tool. Thanks @GaryJones!
- Other housekeeping and minor documentation updates.
- The recommended version of the Composer PHPCS plugin is now
^0.7.0, which offers compatibility with Composer 2.0.
- The rulesets are now also tested against PHP 7.4 and 8.0. Note: full PHP 7.4 support is only available in combination with PHP_CodeSniffer 3.5.6. Note: runtime PHP 8.0 support is only available in combination with PHP_CodeSniffer 3.5.7, full support is expected in PHP_CodeSniffer 3.6.0.
- Composer: The recommended version of the Composer PHPCS plugin has been upped to
- CI: Added early warning system for false positives due to changes in the polyfill library itself.
- Prevent false positives when the ruleset is run over the code of the polyfill itself.
- The ruleset is now also tested against PHP 7.3. Note: full PHP 7.3 support is only available in combination with PHP_CodeSniffer 2.9.2 or 3.3.1+ due to an incompatibility within PHP_CodeSniffer itself.
Initial release of the PHPCompatibilityPasswordCompat ruleset.