<?xml version="1.0"?> <ruleset name="WordPress PHP Compatibility"> <description>Apply PHP compatibility checks to all WordPress Core files</description> <rule ref="PHPCompatibilityWP"/> <!-- WordPress Core currently supports PHP 5.6+. --> <config name="testVersion" value="5.6-"/> <!-- Only scan PHP files. --> <arg name="extensions" value="php"/> <!-- Whenever possible, cache the scan results and re-use those for unchanged files on the next scan. --> <arg name="cache"/> <!-- Set the memory limit to 256M. For most standard PHP configurations, this means the memory limit will temporarily be raised. Ref: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#specifying-phpini-settings --> <ini name="memory_limit" value="256M"/> <!-- Strip the filepaths down to the relevant bit. --> <arg name="basepath" value="./"/> <!-- Check up to 20 files simultaneously. --> <arg name="parallel" value="20"/> <!-- Show sniff codes in all reports. --> <arg value="ps"/> <!-- For now, only the files in src are scanned. --> <file>./src/</file> <!-- Code which doesn't go into production may have different requirements. --> <exclude-pattern>/node_modules/*</exclude-pattern> <!-- Currently, there are no dependencies managed by Composer. This will need to be modified when that changes to ensure external packages meet compatibility requirements. --> <exclude-pattern>/vendor/*</exclude-pattern> <!-- PHPCompatibilityParagonieSodiumCompat prevents false positives in `sodium_compat`. However, because these files are included in a non-standard path, false positives are triggered in WordPress Core. --> <exclude-pattern>src/wp-includes/sodium_compat/lib/php72compat_const\.php$</exclude-pattern> <rule ref="PHPCompatibility.FunctionUse.NewFunctions.sodium_crypto_sign_keypair_from_secretkey_and_publickeyFound"> <exclude-pattern>/sodium_compat/src/Compat\.php$</exclude-pattern> </rule> <rule ref="PHPCompatibility.FunctionUse.NewFunctions.sodium_padFound"> <exclude-pattern>/sodium_compat/src/Compat\.php$</exclude-pattern> </rule> <rule ref="PHPCompatibility.FunctionUse.NewFunctions.sodium_unpadFound"> <exclude-pattern>/sodium_compat/src/Compat\.php$</exclude-pattern> </rule> <!-- PHPCompatibilityParagonieRandomCompat prevents false positives in `random_compat`. However, because these files are included in a non-standard path, false positives are triggered in WordPress Core. --> <rule ref="PHPCompatibility.IniDirectives.RemovedIniDirectives.mbstring_func_overloadDeprecated"> <exclude-pattern>/random_compat/byte_safe_strings\.php$</exclude-pattern> </rule> <rule ref="PHPCompatibility.Constants.RemovedConstants.mcrypt_dev_urandomDeprecatedRemoved"> <exclude-pattern>/random_compat/random_bytes_mcrypt\.php$</exclude-pattern> </rule> <rule ref="PHPCompatibility.Extensions.RemovedExtensions.mcryptDeprecatedRemoved"> <exclude-pattern>/random_compat/random_bytes_mcrypt\.php$</exclude-pattern> </rule> <rule ref="PHPCompatibility.FunctionUse.RemovedFunctions.mcrypt_create_ivDeprecatedRemoved"> <exclude-pattern>/random_compat/random_bytes_mcrypt\.php$</exclude-pattern> </rule> <!-- Whitelist the WP DB Class for use of `mysql_` extension in PHP < 7.0. --> <rule ref="PHPCompatibility.Extensions.RemovedExtensions.mysql_DeprecatedRemoved"> <exclude-pattern>/src/wp-includes/wp-db\.php</exclude-pattern> </rule> </ruleset>