[wp-trac] [WordPress Trac] #55656: PHP 8.x: various compatibility fixes for WordPress 6.1
WordPress Trac
noreply at wordpress.org
Sat Oct 1 03:23:56 UTC 2022
#55656: PHP 8.x: various compatibility fixes for WordPress 6.1
-------------------------------------------------+-------------------------
Reporter: hellofromTonya | Owner:
| SergeyBiryukov
Type: task (blessed) | Status: accepted
Priority: normal | Milestone: 6.1
Component: General | Version:
Severity: normal | Resolution:
Keywords: php8 php81 has-patch has-unit-tests | Focuses: coding-
| standards
-------------------------------------------------+-------------------------
Comment (by SergeyBiryukov):
In [changeset:"54364" 54364]:
{{{
#!CommitTicketReference repository="" revision="54364"
Code Modernization: Check the return type of `parse_url()` in
`url_to_postid()`.
As per the PHP manual:
> If the `component` parameter is omitted, an associative array is
returned.
> If the `component` parameter is specified, `parse_url()` returns a
string (or an int, in the case of `PHP_URL_PORT`) instead of an array. If
the requested component doesn't exist within the given URL, `null` will be
returned.
Reference: [https://www.php.net/manual/en/function.parse-
url.php#refsect1-function.parse-url-returnvalues PHP Manual: parse_url():
Return Values]
In this case, `parse_url()` is called with `PHP_URL_HOST` as `$component`,
which returns `null` if the URL only has a path. The return value of
`parse_url()` was then passed to `str_replace()`, leading to a notice on
PHP 8.1:
{{{
str_replace(): Passing null to parameter #3 ($subject) of type
array|string is deprecated
}}}
Adding validation for the return type value of `parse_url()` prevents
that.
This commit addresses a few errors in the test suite along the lines of:
{{{
5) Tests_Rewrite::test_url_to_postid_home_has_path
str_replace(): Passing null to parameter #3 ($subject) of type
array|string is deprecated
/var/www/src/wp-includes/rewrite.php:503
/var/www/tests/phpunit/tests/rewrite.php:271
/var/www/vendor/bin/phpunit:123
}}}
Includes adding a dedicated unit test for a URL that only has a path.
Follow-up to [41786], [51606], [51622], [51626], [51629], [51630],
[52799].
Props jrf, aristath, poena, justinahinon, SergeyBiryukov.
See #55656.
}}}
--
Ticket URL: <https://core.trac.wordpress.org/ticket/55656#comment:62>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list