Code Modernization: Rename the `readonly()` function to `wp_readonly()`.
Since PHP 8.1, `readonly` is a reserved keyword and cannot be used as a function name. In order to avoid PHP parser errors, the `readonly()` function was extracted to a separate file and is now only included conditionally on PHP < 8.1. This commit also: * Moves the tests for the `__checked_selected_helper()` function and all the related functions to their own file. * Switches to named data providers. This makes the output when using the `--testdox` option more descriptive and is helpful when trying to debug which data set from a data provider failed the test. * Improves the tests in question to make them feature-complete and expand test coverage. Props jrf, ayeshrajans, haosun, knutsp, swissspidy, SergeyBiryukov. Fixes #53858. Built from https://develop.svn.wordpress.org/trunk@51586 git-svn-id: http://core.svn.wordpress.org/trunk@51197 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
68f7026cde
commit
52da9fb6af
|
@ -4813,17 +4813,27 @@ function disabled( $disabled, $current = true, $echo = true ) {
|
|||
*
|
||||
* Compares the first two arguments and if identical marks as readonly
|
||||
*
|
||||
* @since 4.9.0
|
||||
* @since 5.9.0
|
||||
*
|
||||
* @param mixed $readonly One of the values to compare
|
||||
* @param mixed $current (true) The other value to compare if not just true
|
||||
* @param bool $echo Whether to echo or just return the string
|
||||
* @return string HTML attribute or empty string
|
||||
*/
|
||||
function readonly( $readonly, $current = true, $echo = true ) {
|
||||
function wp_readonly( $readonly, $current = true, $echo = true ) {
|
||||
return __checked_selected_helper( $readonly, $current, $echo, 'readonly' );
|
||||
}
|
||||
|
||||
/*
|
||||
* Include a compat `readonly()` function on PHP < 8.1. Since PHP 8.1,
|
||||
* `readonly` is a reserved keyword and cannot be used as a function name.
|
||||
* In order to avoid PHP parser errors, this function was extracted
|
||||
* to a separate file and is only included conditionally on PHP < 8.1.
|
||||
*/
|
||||
if ( PHP_VERSION_ID < 80100 ) {
|
||||
require_once __DIR__ . '/php-compat/readonly.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* Private helper function for checked, selected, disabled and readonly.
|
||||
*
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
/**
|
||||
* Conditionally declares a `readonly()` function, which was renamed
|
||||
* to `wp_readonly()` in WordPress 5.9.0.
|
||||
*
|
||||
* In order to avoid PHP parser errors, this function was extracted
|
||||
* to this separate file and is only included conditionally on PHP 8.1.
|
||||
*
|
||||
* Including this file on PHP >= 8.1 results in a fatal error.
|
||||
*
|
||||
* @package WordPress
|
||||
* @since 5.9.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Outputs the HTML readonly attribute.
|
||||
*
|
||||
* Compares the first two arguments and if identical marks as readonly
|
||||
*
|
||||
* This function is deprecated, and cannot be used on PHP >= 8.1.
|
||||
*
|
||||
* @since 4.9.0
|
||||
* @deprecated 5.9.0 Use `wp_readonly` introduced in 5.9.0.
|
||||
*
|
||||
* @see wp_readonly()
|
||||
*
|
||||
* @param mixed $readonly One of the values to compare
|
||||
* @param mixed $current (true) The other value to compare if not just true
|
||||
* @param bool $echo Whether to echo or just return the string
|
||||
* @return string HTML attribute or empty string
|
||||
*/
|
||||
function readonly( $readonly, $current = true, $echo = true ) {
|
||||
_deprecated_function( __FUNCTION__, '5.9.0', 'wp_readonly()' );
|
||||
return wp_readonly( $readonly, $current, $echo );
|
||||
}
|
|
@ -13,7 +13,7 @@
|
|||
*
|
||||
* @global string $wp_version
|
||||
*/
|
||||
$wp_version = '5.9-alpha-51585';
|
||||
$wp_version = '5.9-alpha-51586';
|
||||
|
||||
/**
|
||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||
|
|
Loading…
Reference in New Issue