2017 © Pedro Peláez
 

phpcodesniffer-standard phpcompatibility-all

A set of external standards for PHP_CodeSniffer that check for PHP version compatibility and can modernize code.

image

phpcompatibility/phpcompatibility-all

A set of external standards for PHP_CodeSniffer that check for PHP version compatibility and can modernize code.

  • Tuesday, July 17, 2018
  • by wimg
  • Repository
  • 2 Watchers
  • 1 Stars
  • 14 Installations
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

License Build Status, (*1)

PHPCompatibilityAll

Convenience package to install all the external PHP_CodeSniffer rulesets which the PHPCompatibility organisation maintains, in one go using Composer., (*2)

What's included in this package ?

Base ruleset

  • PHPCompatibility Current Version PHPCompatibility - External PHP_CodeSniffer standard to check your codebase for PHP cross-version compatibility.

Framework/CMS specific rulesets

Polyfill provider specific rulesets

Requirements

Use the latest stable release of PHP_CodeSniffer for the best results. The minimum recommended version of PHP_CodeSniffer is version 2.6.0., (*3)

Installation instructions

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:, (*4)

composer config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true
composer require --dev dealerdirect/phpcodesniffer-composer-installer:"^0.7" phpcompatibility/phpcompatibility-all:"*"

If you already have a Composer PHP_CodeSniffer plugin installed, run:, (*5)

composer require --dev phpcompatibility/phpcompatibility-all:"*"

Next, run:, (*6)

vendor/bin/phpcs -i

If all went well, you will now see that the PHPCompatibility, PHPCompatibilityJoomla, PHPCompatibilityWP and a number of polyfill related standards are installed for PHP_CodeSniffer., (*7)

How to use

Now you can use any of the following commands to inspect your code:, (*8)

./vendor/bin/phpcs -p . --standard=PHPCompatibility
./vendor/bin/phpcs -p . --standard=PHPCompatibilityJoomla
./vendor/bin/phpcs -p . --standard=PHPCompatibilityWP
./vendor/bin/phpcs -p . --standard=PHPCompatibilityPasswordCompat
./vendor/bin/phpcs -p . --standard=PHPCompatibilityParagonieRandomCompat
./vendor/bin/phpcs -p . --standard=PHPCompatibilityParagonieSodiumCompat
./vendor/bin/phpcs -p . --standard=PHPCompatibilitySymfonyPolyfillPHP54
./vendor/bin/phpcs -p . --standard=PHPCompatibilitySymfonyPolyfillPHP73
...etc...

# You can also combine the standards if your project uses several:
./vendor/bin/phpcs -p . --standard=PHPCompatibilityPasswordCompat,PHPCompatibilitySymfonyPolyfillPHP70,PHPCompatibilityWP

By default, you will only receive notifications about deprecated and/or removed PHP features., (*9)

To get the most out of the PHPCompatibility standards, 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., (*10)

  • You can run the checks for just one specific PHP version by adding --runtime-set testVersion 5.5 to your command line command.
  • 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.
  • Since PHPCompatibility 7.1.3, you can omit one part of the range if you want to support everything above or below a particular version, i.e. use --runtime-set testVersion 7.0- to run all the checks for PHP 7.0 and above.

For example:, (*11)

# For a Joomla project which should be compatible with PHP 5.3 up to and including PHP 7.0:
./vendor/bin/phpcs -p . --standard=PHPCompatibilityJoomla --runtime-set testVersion 5.3-7.0

# For a project using both the Paragonie Sodium Compat polyfill as well as the Symfony PHP 7.1 polyfill and which should be compatible with PHP 5.4 and higher:
./vendor/bin/phpcs -p . --standard=PHPCompatibilityParagonieSodiumCompat,PHPCompatibilitySymfonyPolyfillPHP71 --runtime-set testVersion 5.4-

For more detailed information, see the README of the main PHPCompatibility standard., (*12)

Testing PHP files only

By default PHP_CodeSniffer will analyse PHP, JavaScript and CSS files. As the PHPCompatibility sniffs only target PHP code, you can make the run slightly faster by telling PHP_CodeSniffer to only check PHP files, like so:, (*13)

./vendor/bin/phpcs -p . --standard=PHPCompatibilitySymfonyPolyfillPHP56 --extensions=php --runtime-set testVersion 5.3-

License

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, (*14)

Changelog

1.1.3 - 2022-10-30

  • 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.

1.1.2 - 2021-02-16

  • 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.

1.1.1 - 2019-08-29

  • The recommended version of the Composer PHPCS plugin is now ^0.5.0.
  • The rulesets are 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.

1.1.0 - 2018-10-07

  • Added the new PHPCompatibilityPasswordCompat, PHPCompatibilityParagonie, PHPCompatibilitySymfony rulesets.

1.0.0 - 2018-07-17

Initial release containing the PHPCompatibility, PHPCompatibilityJoomla and PHPCompatibilityWP rulesets., (*15)

The Versions

17/07 2018

dev-master

9999999-dev http://phpcompatibility.com/

A set of external standards for PHP_CodeSniffer that check for PHP version compatibility and can modernize code.

  Sources   Download

LGPL-3.0-or-later

The Requires

 

by Wim Godden

wordpress phpcs joomla standards compatibility

17/07 2018

dev-feature/readme-fix-markdown

dev-feature/readme-fix-markdown http://phpcompatibility.com/

A set of external standards for PHP_CodeSniffer that check for PHP version compatibility and can modernize code.

  Sources   Download

LGPL-3.0-or-later

The Requires

 

by Wim Godden

wordpress phpcs joomla standards compatibility

17/07 2018

1.0.0

1.0.0.0 http://phpcompatibility.com/

A set of external standards for PHP_CodeSniffer that check for PHP version compatibility and can modernize code.

  Sources   Download

LGPL-3.0-or-later

The Requires

 

by Wim Godden

wordpress phpcs joomla standards compatibility

17/07 2018

dev-feature/travis-fix-composer-validate

dev-feature/travis-fix-composer-validate http://phpcompatibility.com/

A set of external standards for PHP_CodeSniffer that check for PHP version compatibility and can modernize code.

  Sources   Download

LGPL-3.0-or-later

The Requires

 

by Wim Godden

wordpress phpcs joomla standards compatibility