This is a set of sniffs for PHP_CodeSniffer that checks for PHP version compatibility.
- Install PHP_CodeSniffer with
pear install PHP_CodeSniffer
(PHP_CodeSniffer 1.5.1 or later is required for full support, notices may be thrown on older versions). - Checkout this repository as
PHPCompatibility
into thePHP/CodeSniffer/Standards
directory. - Use the coding standard with
phpcs --standard=PHPCompatibility
- You can specify which PHP version you want to test against by specifying
--runtime-set testVersion 5.5
. - You can also specify a range of PHP versions that your code needs to support. In this situation, compatibility issues that affect any of the PHP versions in that range will be reported:
--runtime-set testVersion 5.3-5.5
- Add the following lines to the
require-dev
section of your composer.json file.
"require-dev": {
"squizlabs/php_codesniffer": "*",
"wimg/php-compatibility": "dev-master",
"simplyadmire/composer-plugins" : "@dev"
},
- Run
composer update --lock
to install both phpcs and PHPCompatibility coding standard. - Use the coding standard with
./vendor/bin/phpcs --standard=PHPCompatibility
More information can be found on Wim Godden's blog.
All the sniffs are fully tested with PHPUnit tests. In order to run the tests on the sniffs, the following installation steps are required.
-
Install the master branch of
PHP_CodeSniffer
[https://github.com/squizlabs/PHP_CodeSniffer.git].This can be done with composer by adding the following into
~/.composer/composer.json
:{ "require": { "phpunit/phpunit": "3.7.*", "squizlabs/php_codesniffer": ">=1.5.1,<2.2" } }
-
Run the following command to compose in the versions indicated in the above global composer.json file:
$ composer.phar global install
-
Update your system
$PATH
to include the globally composed files:$ export PATH=~/.composer/vendor/bin:$PATH
-
Be sure that the
PHPCompatibility
directory is symlinked intoPHP_Codesniffer
's standards directory:$ ln -s /path/to/PHPCompatibility ~/.composer/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/PHPCompatibility
-
Verify standard is available with
phpcs -i
. The output should includePHPCompatibility
-
Run the tests by running
phpunit
in the root directory of PHPCompatibility. It will read thephpunit.xml
file and execute the tests
This code is released under the GNU Lesser General Public License (LGPL). For more information, visit http://www.gnu.org/copyleft/lesser.html