Build/Test Tools: Introduce automated PHP compatibility checking.
This change introduces a new Composer script, `compat` that will scan the codebase for (detectable) potential PHP compatibility issues using the `PHP_CodeSniffer` and a custom ruleset based off of the `PHPCompayibilityWP` ruleset (`phpcompat.xml.dist`). The command will be run as a separate job within each Travis build. While many compatibility issues and false positives have already been corrected in this commit and other Trac tickets, there are still some remaining. For that reason, the job is allowed to fail while the remainder of the potential compatibility issues are investigated and addressed. After those are resolved, the job should be set as required to pass to help prevent new compatibility issues from being introduced. Props desrosj, jrf, all PHPCompatibilityWP and PHPCompatibility contributors. Fixes #46152. git-svn-id: https://develop.svn.wordpress.org/trunk@46290 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
bad0295cc9
commit
336960897d
@ -29,6 +29,8 @@ matrix:
|
|||||||
name: PHP Linting
|
name: PHP Linting
|
||||||
- env: WP_TRAVISCI=travis:js WP_INSTALL=false
|
- env: WP_TRAVISCI=travis:js WP_INSTALL=false
|
||||||
name: JS Tests
|
name: JS Tests
|
||||||
|
- env: WP_TRAVISCI=test:compat COMPOSER_INSTALL=true NPM_INSTALL=false WP_INSTALL=false
|
||||||
|
name: "PHP Compatibility Check"
|
||||||
- env: LOCAL_PHP=7.3-fpm WP_TRAVISCI=test:php
|
- env: LOCAL_PHP=7.3-fpm WP_TRAVISCI=test:php
|
||||||
name: "PHPUnit Tests: PHP 7.3"
|
name: "PHPUnit Tests: PHP 7.3"
|
||||||
- env: LOCAL_PHP=7.3-fpm LOCAL_PHP_MEMCACHED=true WP_TRAVISCI=test:php
|
- env: LOCAL_PHP=7.3-fpm LOCAL_PHP_MEMCACHED=true WP_TRAVISCI=test:php
|
||||||
@ -46,6 +48,7 @@ matrix:
|
|||||||
- env: LOCAL_PHP=8.0-fpm WP_TRAVISCI=test:php
|
- env: LOCAL_PHP=8.0-fpm WP_TRAVISCI=test:php
|
||||||
name: "PHPUnit Tests: PHP 8.0"
|
name: "PHPUnit Tests: PHP 8.0"
|
||||||
allow_failures:
|
allow_failures:
|
||||||
|
- env: WP_TRAVISCI=test:compat COMPOSER_INSTALL=true NPM_INSTALL=false WP_INSTALL=false
|
||||||
- env: LOCAL_PHP=7.4-fpm WP_TRAVISCI=test:php
|
- env: LOCAL_PHP=7.4-fpm WP_TRAVISCI=test:php
|
||||||
- env: LOCAL_PHP=8.0-fpm WP_TRAVISCI=test:php
|
- env: LOCAL_PHP=8.0-fpm WP_TRAVISCI=test:php
|
||||||
fast_finish: true
|
fast_finish: true
|
||||||
@ -120,6 +123,8 @@ script:
|
|||||||
docker-compose run --rm php composer format &&
|
docker-compose run --rm php composer format &&
|
||||||
docker-compose run --rm php composer lint:errors &&
|
docker-compose run --rm php composer lint:errors &&
|
||||||
docker-compose run --rm php composer lint tests
|
docker-compose run --rm php composer lint tests
|
||||||
|
elif [[ "$WP_TRAVISCI" == "test:compat" ]]; then
|
||||||
|
docker-compose run --rm php composer compat
|
||||||
else
|
else
|
||||||
npm run grunt $WP_TRAVISCI
|
npm run grunt $WP_TRAVISCI
|
||||||
fi
|
fi
|
||||||
|
@ -14,9 +14,11 @@
|
|||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"dealerdirect/phpcodesniffer-composer-installer": "~0.5.0",
|
"dealerdirect/phpcodesniffer-composer-installer": "~0.5.0",
|
||||||
"wp-coding-standards/wpcs": "~2.1.0"
|
"wp-coding-standards/wpcs": "~2.1.0",
|
||||||
|
"phpcompatibility/phpcompatibility-wp": "^2.1.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"compat": "@php ./vendor/squizlabs/php_codesniffer/bin/phpcs --standard=phpcompat.xml.dist --report=summary,source",
|
||||||
"format": "@php ./vendor/squizlabs/php_codesniffer/bin/phpcbf --report=summary,source --cache -d memory_limit=256M",
|
"format": "@php ./vendor/squizlabs/php_codesniffer/bin/phpcbf --report=summary,source --cache -d memory_limit=256M",
|
||||||
"lint": "@php ./vendor/squizlabs/php_codesniffer/bin/phpcs --report=summary,source --cache -d memory_limit=256M",
|
"lint": "@php ./vendor/squizlabs/php_codesniffer/bin/phpcs --report=summary,source --cache -d memory_limit=256M",
|
||||||
"lint:errors": "@lint -n"
|
"lint:errors": "@lint -n"
|
||||||
|
164
composer.lock
generated
164
composer.lock
generated
@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "56c797c5309702adf0f49bd274a364f3",
|
"content-hash": "ca8f46e0b3cba61c076c033cc7143d3a",
|
||||||
"packages": [],
|
"packages": [],
|
||||||
"packages-dev": [
|
"packages-dev": [
|
||||||
{
|
{
|
||||||
@ -73,6 +73,166 @@
|
|||||||
],
|
],
|
||||||
"time": "2018-10-26T13:21:45+00:00"
|
"time": "2018-10-26T13:21:45+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "phpcompatibility/php-compatibility",
|
||||||
|
"version": "9.3.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/PHPCompatibility/PHPCompatibility.git",
|
||||||
|
"reference": "9999344e47e7af6b00e1a898eacc4e4368fb7196"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9999344e47e7af6b00e1a898eacc4e4368fb7196",
|
||||||
|
"reference": "9999344e47e7af6b00e1a898eacc4e4368fb7196",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3",
|
||||||
|
"squizlabs/php_codesniffer": "^2.3 || ^3.0.2"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"squizlabs/php_codesniffer": "2.6.2"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.",
|
||||||
|
"roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
|
||||||
|
},
|
||||||
|
"type": "phpcodesniffer-standard",
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"LGPL-3.0-or-later"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Wim Godden",
|
||||||
|
"homepage": "https://github.com/wimg",
|
||||||
|
"role": "lead"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Juliette Reinders Folmer",
|
||||||
|
"homepage": "https://github.com/jrfnl",
|
||||||
|
"role": "lead"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Contributors",
|
||||||
|
"homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.",
|
||||||
|
"homepage": "http://techblog.wimgodden.be/tag/codesniffer/",
|
||||||
|
"keywords": [
|
||||||
|
"compatibility",
|
||||||
|
"phpcs",
|
||||||
|
"standards"
|
||||||
|
],
|
||||||
|
"time": "2019-09-05T18:36:49+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "phpcompatibility/phpcompatibility-paragonie",
|
||||||
|
"version": "1.1.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git",
|
||||||
|
"reference": "b1bb79a7cab1fb856b56f1b5cf110b6e52d8e936"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/b1bb79a7cab1fb856b56f1b5cf110b6e52d8e936",
|
||||||
|
"reference": "b1bb79a7cab1fb856b56f1b5cf110b6e52d8e936",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"phpcompatibility/php-compatibility": "^9.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"dealerdirect/phpcodesniffer-composer-installer": "^0.5",
|
||||||
|
"paragonie/random_compat": "dev-master",
|
||||||
|
"paragonie/sodium_compat": "dev-master"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.",
|
||||||
|
"roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
|
||||||
|
},
|
||||||
|
"type": "phpcodesniffer-standard",
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"LGPL-3.0-or-later"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Wim Godden",
|
||||||
|
"role": "lead"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Juliette Reinders Folmer",
|
||||||
|
"role": "lead"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A set of rulesets for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by the Paragonie polyfill libraries.",
|
||||||
|
"homepage": "http://phpcompatibility.com/",
|
||||||
|
"keywords": [
|
||||||
|
"compatibility",
|
||||||
|
"paragonie",
|
||||||
|
"phpcs",
|
||||||
|
"polyfill",
|
||||||
|
"standards"
|
||||||
|
],
|
||||||
|
"time": "2019-08-28T15:58:19+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "phpcompatibility/phpcompatibility-wp",
|
||||||
|
"version": "2.1.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git",
|
||||||
|
"reference": "41bef18ba688af638b7310666db28e1ea9158b2f"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/41bef18ba688af638b7310666db28e1ea9158b2f",
|
||||||
|
"reference": "41bef18ba688af638b7310666db28e1ea9158b2f",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"phpcompatibility/php-compatibility": "^9.0",
|
||||||
|
"phpcompatibility/phpcompatibility-paragonie": "^1.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"dealerdirect/phpcodesniffer-composer-installer": "^0.5"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.",
|
||||||
|
"roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
|
||||||
|
},
|
||||||
|
"type": "phpcodesniffer-standard",
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"LGPL-3.0-or-later"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Wim Godden",
|
||||||
|
"role": "lead"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Juliette Reinders Folmer",
|
||||||
|
"role": "lead"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A ruleset for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by WordPress.",
|
||||||
|
"homepage": "http://phpcompatibility.com/",
|
||||||
|
"keywords": [
|
||||||
|
"compatibility",
|
||||||
|
"phpcs",
|
||||||
|
"standards",
|
||||||
|
"wordpress"
|
||||||
|
],
|
||||||
|
"time": "2019-08-28T14:22:28+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "squizlabs/php_codesniffer",
|
"name": "squizlabs/php_codesniffer",
|
||||||
"version": "3.4.0",
|
"version": "3.4.0",
|
||||||
@ -176,7 +336,7 @@
|
|||||||
"prefer-stable": false,
|
"prefer-stable": false,
|
||||||
"prefer-lowest": false,
|
"prefer-lowest": false,
|
||||||
"platform": {
|
"platform": {
|
||||||
"php": ">=5.6"
|
"php": ">=5.6"
|
||||||
},
|
},
|
||||||
"platform-dev": []
|
"platform-dev": []
|
||||||
}
|
}
|
||||||
|
64
phpcompat.xml.dist
Normal file
64
phpcompat.xml.dist
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
<?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>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
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">
|
||||||
|
<exclude-pattern>/src/wp-includes/wp-db\.php</exclude-pattern>
|
||||||
|
</rule>
|
||||||
|
</ruleset>
|
@ -728,7 +728,7 @@ class WP_Debug_Data {
|
|||||||
if ( isset( $wpdb->use_mysqli ) && $wpdb->use_mysqli ) {
|
if ( isset( $wpdb->use_mysqli ) && $wpdb->use_mysqli ) {
|
||||||
$client_version = $wpdb->dbh->client_info;
|
$client_version = $wpdb->dbh->client_info;
|
||||||
} else {
|
} else {
|
||||||
// phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysql_get_client_info
|
// phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysql_get_client_info,PHPCompatibility.Extensions.RemovedExtensions.mysql_DeprecatedRemoved
|
||||||
if ( preg_match( '|[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}|', mysql_get_client_info(), $matches ) ) {
|
if ( preg_match( '|[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}|', mysql_get_client_info(), $matches ) ) {
|
||||||
$client_version = $matches[0];
|
$client_version = $matches[0];
|
||||||
} else {
|
} else {
|
||||||
|
@ -158,7 +158,7 @@ class WP_Site_Health {
|
|||||||
// phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysqli_get_server_info
|
// phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysqli_get_server_info
|
||||||
$mysql_server_type = mysqli_get_server_info( $wpdb->dbh );
|
$mysql_server_type = mysqli_get_server_info( $wpdb->dbh );
|
||||||
} else {
|
} else {
|
||||||
// phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysql_get_server_info
|
// phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysql_get_server_info,PHPCompatibility.Extensions.RemovedExtensions.mysql_DeprecatedRemoved
|
||||||
$mysql_server_type = mysql_get_server_info( $wpdb->dbh );
|
$mysql_server_type = mysql_get_server_info( $wpdb->dbh );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1171,7 +1171,7 @@ class WP_Site_Health {
|
|||||||
// phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysqli_get_client_info
|
// phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysqli_get_client_info
|
||||||
$mysql_client_version = mysqli_get_client_info();
|
$mysql_client_version = mysqli_get_client_info();
|
||||||
} else {
|
} else {
|
||||||
// phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysql_get_client_info
|
// phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysql_get_client_info,PHPCompatibility.Extensions.RemovedExtensions.mysql_DeprecatedRemoved
|
||||||
$mysql_client_version = mysql_get_client_info();
|
$mysql_client_version = mysql_get_client_info();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1280,6 +1280,7 @@ function verify_file_signature( $filename, $signatures, $filename_for_errors = f
|
|||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'php' => phpversion(),
|
'php' => phpversion(),
|
||||||
|
// phpcs:ignore PHPCompatibility.Constants.NewConstants.sodium_library_versionFound
|
||||||
'sodium' => defined( 'SODIUM_LIBRARY_VERSION' ) ? SODIUM_LIBRARY_VERSION : ( defined( 'ParagonIE_Sodium_Compat::VERSION_STRING' ) ? ParagonIE_Sodium_Compat::VERSION_STRING : false ),
|
'sodium' => defined( 'SODIUM_LIBRARY_VERSION' ) ? SODIUM_LIBRARY_VERSION : ( defined( 'ParagonIE_Sodium_Compat::VERSION_STRING' ) ? ParagonIE_Sodium_Compat::VERSION_STRING : false ),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -1313,6 +1314,7 @@ function verify_file_signature( $filename, $signatures, $filename_for_errors = f
|
|||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'php' => phpversion(),
|
'php' => phpversion(),
|
||||||
|
// phpcs:ignore PHPCompatibility.Constants.NewConstants.sodium_library_versionFound
|
||||||
'sodium' => defined( 'SODIUM_LIBRARY_VERSION' ) ? SODIUM_LIBRARY_VERSION : ( defined( 'ParagonIE_Sodium_Compat::VERSION_STRING' ) ? ParagonIE_Sodium_Compat::VERSION_STRING : false ),
|
'sodium' => defined( 'SODIUM_LIBRARY_VERSION' ) ? SODIUM_LIBRARY_VERSION : ( defined( 'ParagonIE_Sodium_Compat::VERSION_STRING' ) ? ParagonIE_Sodium_Compat::VERSION_STRING : false ),
|
||||||
'polyfill_is_fast' => false,
|
'polyfill_is_fast' => false,
|
||||||
'max_execution_time' => ini_get( 'max_execution_time' ),
|
'max_execution_time' => ini_get( 'max_execution_time' ),
|
||||||
@ -1386,6 +1388,7 @@ function verify_file_signature( $filename, $signatures, $filename_for_errors = f
|
|||||||
'skipped_key' => $skipped_key,
|
'skipped_key' => $skipped_key,
|
||||||
'skipped_sig' => $skipped_signature,
|
'skipped_sig' => $skipped_signature,
|
||||||
'php' => phpversion(),
|
'php' => phpversion(),
|
||||||
|
// phpcs:ignore PHPCompatibility.Constants.NewConstants.sodium_library_versionFound
|
||||||
'sodium' => defined( 'SODIUM_LIBRARY_VERSION' ) ? SODIUM_LIBRARY_VERSION : ( defined( 'ParagonIE_Sodium_Compat::VERSION_STRING' ) ? ParagonIE_Sodium_Compat::VERSION_STRING : false ),
|
'sodium' => defined( 'SODIUM_LIBRARY_VERSION' ) ? SODIUM_LIBRARY_VERSION : ( defined( 'ParagonIE_Sodium_Compat::VERSION_STRING' ) ? ParagonIE_Sodium_Compat::VERSION_STRING : false ),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -2475,7 +2475,7 @@ function get_alloptions_110() {
|
|||||||
* @param string $setting Option name.
|
* @param string $setting Option name.
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
function __get_option( $setting ) { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore
|
function __get_option( $setting ) { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore
|
||||||
global $wpdb;
|
global $wpdb;
|
||||||
|
|
||||||
if ( $setting == 'home' && defined( 'WP_HOME' ) ) {
|
if ( $setting == 'home' && defined( 'WP_HOME' ) ) {
|
||||||
|
@ -565,6 +565,6 @@ function is_multi_author() {
|
|||||||
* @since 3.2.0
|
* @since 3.2.0
|
||||||
* @access private
|
* @access private
|
||||||
*/
|
*/
|
||||||
function __clear_multi_author_cache() { //phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore
|
function __clear_multi_author_cache() { //phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore
|
||||||
delete_transient( 'is_multi_author' );
|
delete_transient( 'is_multi_author' );
|
||||||
}
|
}
|
||||||
|
@ -1798,7 +1798,7 @@ function _nc( $single, $plural, $number, $domain = 'default' ) {
|
|||||||
* @deprecated 2.8.0 Use _n()
|
* @deprecated 2.8.0 Use _n()
|
||||||
* @see _n()
|
* @see _n()
|
||||||
*/
|
*/
|
||||||
function __ngettext( ...$args ) {
|
function __ngettext( ...$args ) { // phpcs:ignore PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore
|
||||||
_deprecated_function( __FUNCTION__, '2.8.0', '_n()' );
|
_deprecated_function( __FUNCTION__, '2.8.0', '_n()' );
|
||||||
return _n( ...$args );
|
return _n( ...$args );
|
||||||
}
|
}
|
||||||
@ -1810,7 +1810,7 @@ function __ngettext( ...$args ) {
|
|||||||
* @deprecated 2.8.0 Use _n_noop()
|
* @deprecated 2.8.0 Use _n_noop()
|
||||||
* @see _n_noop()
|
* @see _n_noop()
|
||||||
*/
|
*/
|
||||||
function __ngettext_noop( ...$args ) {
|
function __ngettext_noop( ...$args ) { // phpcs:ignore PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore
|
||||||
_deprecated_function( __FUNCTION__, '2.8.0', '_n_noop()' );
|
_deprecated_function( __FUNCTION__, '2.8.0', '_n_noop()' );
|
||||||
return _n_noop( ...$args );
|
return _n_noop( ...$args );
|
||||||
|
|
||||||
|
@ -5743,7 +5743,7 @@ function get_file_data( $file, $default_headers, $context = '' ) {
|
|||||||
*
|
*
|
||||||
* @return true True.
|
* @return true True.
|
||||||
*/
|
*/
|
||||||
function __return_true() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore
|
function __return_true() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5758,7 +5758,7 @@ function __return_true() { // phpcs:ignore WordPress.NamingConventions.ValidFunc
|
|||||||
*
|
*
|
||||||
* @return false False.
|
* @return false False.
|
||||||
*/
|
*/
|
||||||
function __return_false() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore
|
function __return_false() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5771,7 +5771,7 @@ function __return_false() { // phpcs:ignore WordPress.NamingConventions.ValidFun
|
|||||||
*
|
*
|
||||||
* @return int 0.
|
* @return int 0.
|
||||||
*/
|
*/
|
||||||
function __return_zero() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore
|
function __return_zero() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5784,7 +5784,7 @@ function __return_zero() { // phpcs:ignore WordPress.NamingConventions.ValidFunc
|
|||||||
*
|
*
|
||||||
* @return array Empty array.
|
* @return array Empty array.
|
||||||
*/
|
*/
|
||||||
function __return_empty_array() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore
|
function __return_empty_array() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5797,7 +5797,7 @@ function __return_empty_array() { // phpcs:ignore WordPress.NamingConventions.Va
|
|||||||
*
|
*
|
||||||
* @return null Null value.
|
* @return null Null value.
|
||||||
*/
|
*/
|
||||||
function __return_null() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore
|
function __return_null() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5812,7 +5812,7 @@ function __return_null() { // phpcs:ignore WordPress.NamingConventions.ValidFunc
|
|||||||
*
|
*
|
||||||
* @return string Empty string.
|
* @return string Empty string.
|
||||||
*/
|
*/
|
||||||
function __return_empty_string() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore
|
function __return_empty_string() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4684,7 +4684,7 @@ function readonly( $readonly, $current = true, $echo = true ) {
|
|||||||
* @param string $type The type of checked|selected|disabled|readonly we are doing
|
* @param string $type The type of checked|selected|disabled|readonly we are doing
|
||||||
* @return string html attribute or empty string
|
* @return string html attribute or empty string
|
||||||
*/
|
*/
|
||||||
function __checked_selected_helper( $helper, $current, $echo, $type ) { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore
|
function __checked_selected_helper( $helper, $current, $echo, $type ) { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore
|
||||||
if ( (string) $helper === (string) $current ) {
|
if ( (string) $helper === (string) $current ) {
|
||||||
$result = " $type='$type'";
|
$result = " $type='$type'";
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user