[wp-trac] [WordPress Trac] #62061: Prepare for PHP 8.4
WordPress Trac
noreply at wordpress.org
Wed Sep 18 21:38:48 UTC 2024
#62061: Prepare for PHP 8.4
---------------------------------------------+-----------------------------
Reporter: jrf | Owner: (none)
Type: task (blessed) | Status: new
Priority: normal | Milestone: 6.7
Component: General | Version:
Severity: normal | Resolution:
Keywords: php-84 has-patch has-unit-tests | Focuses: php-
| compatibility
---------------------------------------------+-----------------------------
Comment (by hellofromTonya):
In [changeset:"59063" 59063]:
{{{
#!CommitTicketReference repository="" revision="59063"
Code Modernization: Remove xml_set_object() in MagpieRSS::__construct().
The XML Parser extension still supports a quite dated mechanism for method
based callbacks, where the object is first set via `xml_set_object()` and
the callbacks are then set by passing only the name of the method to the
relevant parameters on any of the `xml_set_*_handler()` functions.
{{{
xml_set_object( $parser, $my_obj );
xml_set_character_data_handler( $parser, 'method_name_on_my_obj' );
}}}
Passing proper callables to the `xml_set_*_handler()` functions has been
supported for the longest time and is cross-version compatible. So the
above code is 100% equivalent to:
{{{
xml_set_character_data_handler( $parser, [$my_obj,
'method_name_on_my_obj'] );
}}}
The mechanism of setting the callbacks with `xml_set_object()` has now
been deprecated as of PHP 8.4, in favour of passing proper callables to
the `xml_set_*_handler()` functions. This is also means that calling the
`xml_set_object()` function is deprecated as well.
This commit fixes this deprecation for the `MagpieRSS::__construct()`
method.
The change has not been not covered by tests. This class has been
deprecated since WP 3.0.0 and is not covered by tests at all. Adding those
now seems superfluous, all the more as the principle of the fix is no
different than for the other files, so we can be sure it works anyway.
Note: Though this is "officially" an external library, this package is no
longer externally maintained. The code style of the fix in the source file
is in line with the existing code style for the file.
Refs:
*
https://wiki.php.net/rfc/deprecations_php_8_4#xml_set_object_and_xml_set_handler_with_string_method_names
* https://www.php.net/manual/en/function.xml-set-object.php
* https://www.php.net/manual/en/ref.xml.php
Follow-up to [4399].
Props jrf.
See #62061.
}}}
--
Ticket URL: <https://core.trac.wordpress.org/ticket/62061#comment:27>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list