Ticket #46152: 46152.2.diff
File 46152.2.diff, 21.3 KB (added by , 5 years ago) |
---|
-
.travis.yml
29 29 name: PHP Linting 30 30 - env: WP_TRAVISCI=travis:js WP_INSTALL=false 31 31 name: JS Tests 32 - env: WP_TRAVISCI=test:compat COMPOSER_INSTALL=true NPM_INSTALL=false WP_INSTALL=false 33 name: "PHP Compatibility Checker" 32 34 - env: LOCAL_PHP=7.3-fpm WP_TRAVISCI=test:php 33 35 name: "PHPUnit Tests: PHP 7.3" 34 36 - env: LOCAL_PHP=7.3-fpm LOCAL_PHP_MEMCACHED=true WP_TRAVISCI=test:php … … 46 48 - env: LOCAL_PHP=8.0-fpm WP_TRAVISCI=test:php 47 49 name: "PHPUnit Tests: PHP 8.0" 48 50 allow_failures: 51 - env: WP_TRAVISCI=test:compat COMPOSER_INSTALL=true NPM_INSTALL=false WP_INSTALL=false 49 52 - env: LOCAL_PHP=7.4-fpm WP_TRAVISCI=test:php 50 53 - env: LOCAL_PHP=8.0-fpm WP_TRAVISCI=test:php 51 54 fast_finish: true … … 75 78 npm ci 76 79 fi 77 80 - | 78 if [[ "$WP_TRAVISCI" == "test:e2e" ]] || [[ "$WP_TRAVISCI" == "test:php" ]] ; then81 if [[ "$WP_TRAVISCI" == "test:e2e" ]] || [[ "$WP_TRAVISCI" == "test:php" ]] || [[ "$WP_TRAVISCI" == "test:compat" ]]; then 79 82 npm run env:start 80 83 npm run build 81 84 docker-compose run --rm mysql mysql --version … … 120 123 docker-compose run --rm php composer format && 121 124 docker-compose run --rm php composer lint:errors && 122 125 docker-compose run --rm php composer lint tests 126 elif [[ "$WP_TRAVISCI" == "test:compat" ]]; then 127 docker-compose run --rm php composer compat 123 128 else 124 129 npm run grunt $WP_TRAVISCI 125 130 fi -
composer.json
11 11 }, 12 12 "require-dev": { 13 13 "dealerdirect/phpcodesniffer-composer-installer": "~0.5.0", 14 "wp-coding-standards/wpcs": "~2.1.0" 14 "wp-coding-standards/wpcs": "~2.1.0", 15 "phpcompatibility/phpcompatibility-wp": "^2.1.0" 15 16 }, 16 17 "scripts": { 18 "compat": "phpcs --standard=phpcompat.xml.dist --report=summary,source --cache -d memory_limit=256M", 17 19 "format": "phpcbf --standard=phpcs.xml.dist --report-summary --report-source --cache -d memory_limit=256M", 18 20 "lint": "phpcs --standard=phpcs.xml.dist --report-summary --report-source --cache -d memory_limit=256M", 19 21 "lint:errors": "phpcs --standard=phpcs.xml.dist --report-summary --report-source --cache -d memory_limit=256M -n" -
composer.lock
4 4 "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", 5 5 "This file is @generated automatically" 6 6 ], 7 "content-hash": " 54fbee5534d4ee1d332bb374c5442e79",7 "content-hash": "b5c8f132394efcf7649e6e1fc4ac6143", 8 8 "packages": [], 9 9 "packages-dev": [ 10 10 { … … 74 74 "time": "2018-10-26T13:21:45+00:00" 75 75 }, 76 76 { 77 "name": "phpcompatibility/php-compatibility", 78 "version": "9.3.1", 79 "source": { 80 "type": "git", 81 "url": "https://github.com/PHPCompatibility/PHPCompatibility.git", 82 "reference": "9999344e47e7af6b00e1a898eacc4e4368fb7196" 83 }, 84 "dist": { 85 "type": "zip", 86 "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9999344e47e7af6b00e1a898eacc4e4368fb7196", 87 "reference": "9999344e47e7af6b00e1a898eacc4e4368fb7196", 88 "shasum": "" 89 }, 90 "require": { 91 "php": ">=5.3", 92 "squizlabs/php_codesniffer": "^2.3 || ^3.0.2" 93 }, 94 "conflict": { 95 "squizlabs/php_codesniffer": "2.6.2" 96 }, 97 "require-dev": { 98 "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0" 99 }, 100 "suggest": { 101 "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.", 102 "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." 103 }, 104 "type": "phpcodesniffer-standard", 105 "notification-url": "https://packagist.org/downloads/", 106 "license": [ 107 "LGPL-3.0-or-later" 108 ], 109 "authors": [ 110 { 111 "name": "Wim Godden", 112 "homepage": "https://github.com/wimg", 113 "role": "lead" 114 }, 115 { 116 "name": "Juliette Reinders Folmer", 117 "homepage": "https://github.com/jrfnl", 118 "role": "lead" 119 }, 120 { 121 "name": "Contributors", 122 "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors" 123 } 124 ], 125 "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.", 126 "homepage": "http://techblog.wimgodden.be/tag/codesniffer/", 127 "keywords": [ 128 "compatibility", 129 "phpcs", 130 "standards" 131 ], 132 "time": "2019-09-05T18:36:49+00:00" 133 }, 134 { 135 "name": "phpcompatibility/phpcompatibility-paragonie", 136 "version": "1.1.0", 137 "source": { 138 "type": "git", 139 "url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git", 140 "reference": "b1bb79a7cab1fb856b56f1b5cf110b6e52d8e936" 141 }, 142 "dist": { 143 "type": "zip", 144 "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/b1bb79a7cab1fb856b56f1b5cf110b6e52d8e936", 145 "reference": "b1bb79a7cab1fb856b56f1b5cf110b6e52d8e936", 146 "shasum": "" 147 }, 148 "require": { 149 "phpcompatibility/php-compatibility": "^9.0" 150 }, 151 "require-dev": { 152 "dealerdirect/phpcodesniffer-composer-installer": "^0.5", 153 "paragonie/random_compat": "dev-master", 154 "paragonie/sodium_compat": "dev-master" 155 }, 156 "suggest": { 157 "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.", 158 "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." 159 }, 160 "type": "phpcodesniffer-standard", 161 "notification-url": "https://packagist.org/downloads/", 162 "license": [ 163 "LGPL-3.0-or-later" 164 ], 165 "authors": [ 166 { 167 "name": "Wim Godden", 168 "role": "lead" 169 }, 170 { 171 "name": "Juliette Reinders Folmer", 172 "role": "lead" 173 } 174 ], 175 "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.", 176 "homepage": "http://phpcompatibility.com/", 177 "keywords": [ 178 "compatibility", 179 "paragonie", 180 "phpcs", 181 "polyfill", 182 "standards" 183 ], 184 "time": "2019-08-28T15:58:19+00:00" 185 }, 186 { 187 "name": "phpcompatibility/phpcompatibility-wp", 188 "version": "2.1.0", 189 "source": { 190 "type": "git", 191 "url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git", 192 "reference": "41bef18ba688af638b7310666db28e1ea9158b2f" 193 }, 194 "dist": { 195 "type": "zip", 196 "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/41bef18ba688af638b7310666db28e1ea9158b2f", 197 "reference": "41bef18ba688af638b7310666db28e1ea9158b2f", 198 "shasum": "" 199 }, 200 "require": { 201 "phpcompatibility/php-compatibility": "^9.0", 202 "phpcompatibility/phpcompatibility-paragonie": "^1.0" 203 }, 204 "require-dev": { 205 "dealerdirect/phpcodesniffer-composer-installer": "^0.5" 206 }, 207 "suggest": { 208 "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.", 209 "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." 210 }, 211 "type": "phpcodesniffer-standard", 212 "notification-url": "https://packagist.org/downloads/", 213 "license": [ 214 "LGPL-3.0-or-later" 215 ], 216 "authors": [ 217 { 218 "name": "Wim Godden", 219 "role": "lead" 220 }, 221 { 222 "name": "Juliette Reinders Folmer", 223 "role": "lead" 224 } 225 ], 226 "description": "A ruleset for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by WordPress.", 227 "homepage": "http://phpcompatibility.com/", 228 "keywords": [ 229 "compatibility", 230 "phpcs", 231 "standards", 232 "wordpress" 233 ], 234 "time": "2019-08-28T14:22:28+00:00" 235 }, 236 { 77 237 "name": "squizlabs/php_codesniffer", 78 238 "version": "3.4.0", 79 239 "source": { -
phpcompat.xml.dist
1 <?xml version="1.0"?> 2 <ruleset name="WordPress PHP Compatibility"> 3 <description>Apply PHP compatibility checks to all Core files</description> 4 5 <rule ref="PHPCompatibilityWP"/> 6 <config name="testVersion" value="5.6-7.4"/> 7 8 <arg name="extensions" value="php"/> 9 10 <!-- Strip the filepaths down to the relevant bit. --> 11 <arg name="basepath" value="./"/> 12 13 <!-- Check up to 20 files simultaneously. --> 14 <arg name="parallel" value="20"/> 15 16 <!-- Show sniff codes in all reports --> 17 <arg value="ps"/> 18 19 <file>./src/</file> 20 21 <!-- Code which doesn't go into production may have different requirements. --> 22 <exclude-pattern>/node_modules/*</exclude-pattern> 23 <exclude-pattern>/vendor/*</exclude-pattern> 24 25 <!-- Compatibility libraries, deprecated external libraries, and polyfill exclusions --> 26 <exclude-pattern>/src/wp-includes/class-snoopy\.php</exclude-pattern> 27 <exclude-pattern>/src/wp-includes/random_compat/*</exclude-pattern> 28 29 <!-- Whitelist the WP DB Class for use of `mysql_` extension in PHP < 7.0. --> 30 <rule ref="PHPCompatibility.Extensions.RemovedExtensions"> 31 <exclude-pattern>/src/wp-includes/wp-db\.php</exclude-pattern> 32 </rule> 33 </ruleset> -
src/wp-admin/includes/class-wp-debug-data.php
728 728 if ( isset( $wpdb->use_mysqli ) && $wpdb->use_mysqli ) { 729 729 $client_version = $wpdb->dbh->client_info; 730 730 } else { 731 // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysql_get_client_info 731 // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysql_get_client_info,PHPCompatibility.Extensions.RemovedExtensions.mysql_DeprecatedRemoved 732 732 if ( preg_match( '|[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}|', mysql_get_client_info(), $matches ) ) { 733 733 $client_version = $matches[0]; 734 734 } else { -
src/wp-admin/includes/class-wp-site-health.php
136 136 // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysqli_get_server_info 137 137 $mysql_server_type = mysqli_get_server_info( $wpdb->dbh ); 138 138 } else { 139 // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysql_get_server_info 139 // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysql_get_server_info,PHPCompatibility.Extensions.RemovedExtensions.mysql_DeprecatedRemoved 140 140 $mysql_server_type = mysql_get_server_info( $wpdb->dbh ); 141 141 } 142 142 … … 1094 1094 // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysqli_get_client_info 1095 1095 $mysql_client_version = mysqli_get_client_info(); 1096 1096 } else { 1097 // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysql_get_client_info 1097 // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysql_get_client_info,PHPCompatibility.Extensions.RemovedExtensions.mysql_DeprecatedRemoved 1098 1098 $mysql_client_version = mysql_get_client_info(); 1099 1099 } 1100 1100 -
src/wp-admin/includes/file.php
1220 1220 ), 1221 1221 array( 1222 1222 'php' => phpversion(), 1223 // phpcs:ignore PHPCompatibility.Constants.NewConstants.sodium_library_versionFound 1223 1224 'sodium' => defined( 'SODIUM_LIBRARY_VERSION' ) ? SODIUM_LIBRARY_VERSION : ( defined( 'ParagonIE_Sodium_Compat::VERSION_STRING' ) ? ParagonIE_Sodium_Compat::VERSION_STRING : false ), 1224 1225 ) 1225 1226 ); … … 1253 1254 ), 1254 1255 array( 1255 1256 'php' => phpversion(), 1257 // phpcs:ignore PHPCompatibility.Constants.NewConstants.sodium_library_versionFound 1256 1258 'sodium' => defined( 'SODIUM_LIBRARY_VERSION' ) ? SODIUM_LIBRARY_VERSION : ( defined( 'ParagonIE_Sodium_Compat::VERSION_STRING' ) ? ParagonIE_Sodium_Compat::VERSION_STRING : false ), 1257 1259 'polyfill_is_fast' => false, 1258 1260 'max_execution_time' => ini_get( 'max_execution_time' ), … … 1326 1328 'skipped_key' => $skipped_key, 1327 1329 'skipped_sig' => $skipped_signature, 1328 1330 'php' => phpversion(), 1331 // phpcs:ignore PHPCompatibility.Constants.NewConstants.sodium_library_versionFound 1329 1332 'sodium' => defined( 'SODIUM_LIBRARY_VERSION' ) ? SODIUM_LIBRARY_VERSION : ( defined( 'ParagonIE_Sodium_Compat::VERSION_STRING' ) ? ParagonIE_Sodium_Compat::VERSION_STRING : false ), 1330 1333 ) 1331 1334 ); -
src/wp-admin/includes/upgrade.php
2478 2478 * @param string $setting Option name. 2479 2479 * @return mixed 2480 2480 */ 2481 function __get_option( $setting ) { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore 2481 function __get_option( $setting ) { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore 2482 2482 global $wpdb; 2483 2483 2484 2484 if ( $setting == 'home' && defined( 'WP_HOME' ) ) { -
src/wp-includes/author-template.php
565 565 * @since 3.2.0 566 566 * @access private 567 567 */ 568 function __clear_multi_author_cache() { //phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore 568 function __clear_multi_author_cache() { //phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore 569 569 delete_transient( 'is_multi_author' ); 570 570 } -
src/wp-includes/deprecated.php
1798 1798 * @deprecated 2.8.0 Use _n() 1799 1799 * @see _n() 1800 1800 */ 1801 function __ngettext( ...$args ) { 1801 function __ngettext( ...$args ) { // phpcs:ignore PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore 1802 1802 _deprecated_function( __FUNCTION__, '2.8.0', '_n()' ); 1803 1803 return _n( ...$args ); 1804 1804 } … … 1810 1810 * @deprecated 2.8.0 Use _n_noop() 1811 1811 * @see _n_noop() 1812 1812 */ 1813 function __ngettext_noop( ...$args ) { 1813 function __ngettext_noop( ...$args ) { // phpcs:ignore PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore 1814 1814 _deprecated_function( __FUNCTION__, '2.8.0', '_n_noop()' ); 1815 1815 return _n_noop( ...$args ); 1816 1816 … … 2512 2512 * Determines whether the current admin page is generated by a plugin. 2513 2513 * 2514 2514 * Use global $plugin_page and/or get_plugin_page_hookname() hooks. 2515 * 2515 * 2516 2516 * For more information on this and similar theme functions, check out 2517 * the {@link https://developer.wordpress.org/themes/basics/conditional-tags/ 2517 * the {@link https://developer.wordpress.org/themes/basics/conditional-tags/ 2518 2518 * Conditional Tags} article in the Theme Developer Handbook. 2519 * 2519 * 2520 2520 * @since 1.5.0 2521 2521 * @deprecated 3.1.0 2522 2522 * … … 3719 3719 3720 3720 /** 3721 3721 * Determines whether the current URL is within the comments popup window. 3722 * 3722 * 3723 3723 * For more information on this and similar theme functions, check out 3724 * the {@link https://developer.wordpress.org/themes/basics/conditional-tags/ 3724 * the {@link https://developer.wordpress.org/themes/basics/conditional-tags/ 3725 3725 * Conditional Tags} article in the Theme Developer Handbook. 3726 * 3726 * 3727 3727 * @since 1.5.0 3728 3728 * @deprecated 4.5.0 3729 3729 * -
src/wp-includes/functions.php
5763 5763 * 5764 5764 * @return true True. 5765 5765 */ 5766 function __return_true() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore 5766 function __return_true() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore 5767 5767 return true; 5768 5768 } 5769 5769 … … 5778 5778 * 5779 5779 * @return false False. 5780 5780 */ 5781 function __return_false() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore 5781 function __return_false() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore 5782 5782 return false; 5783 5783 } 5784 5784 … … 5791 5791 * 5792 5792 * @return int 0. 5793 5793 */ 5794 function __return_zero() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore 5794 function __return_zero() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore 5795 5795 return 0; 5796 5796 } 5797 5797 … … 5804 5804 * 5805 5805 * @return array Empty array. 5806 5806 */ 5807 function __return_empty_array() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore 5807 function __return_empty_array() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore 5808 5808 return array(); 5809 5809 } 5810 5810 … … 5817 5817 * 5818 5818 * @return null Null value. 5819 5819 */ 5820 function __return_null() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore 5820 function __return_null() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore 5821 5821 return null; 5822 5822 } 5823 5823 … … 5832 5832 * 5833 5833 * @return string Empty string. 5834 5834 */ 5835 function __return_empty_string() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore 5835 function __return_empty_string() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore 5836 5836 return ''; 5837 5837 } 5838 5838 -
src/wp-includes/general-template.php
4683 4683 * @param string $type The type of checked|selected|disabled|readonly we are doing 4684 4684 * @return string html attribute or empty string 4685 4685 */ 4686 function __checked_selected_helper( $helper, $current, $echo, $type ) { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore 4686 function __checked_selected_helper( $helper, $current, $echo, $type ) { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore 4687 4687 if ( (string) $helper === (string) $current ) { 4688 4688 $result = " $type='$type'"; 4689 4689 } else {