From abe6e875967d59aaaf6d76a93f6771e604c2d84a Mon Sep 17 00:00:00 2001 From: hellofromTonya Date: Wed, 18 Sep 2024 21:40:12 +0000 Subject: [PATCH] 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. Built from https://develop.svn.wordpress.org/trunk@59063 git-svn-id: http://core.svn.wordpress.org/trunk@58459 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/rss.php | 5 ++--- wp-includes/version.php | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/wp-includes/rss.php b/wp-includes/rss.php index 3304ed0c19..d113eee1c2 100644 --- a/wp-includes/rss.php +++ b/wp-includes/rss.php @@ -74,11 +74,10 @@ class MagpieRSS { # pass in parser, and a reference to this object # set up handlers # - xml_set_object( $this->parser, $this ); xml_set_element_handler($this->parser, - 'feed_start_element', 'feed_end_element' ); + array( $this, 'feed_start_element' ), array( $this, 'feed_end_element' ) ); - xml_set_character_data_handler( $this->parser, 'feed_cdata' ); + xml_set_character_data_handler( $this->parser, array( $this, 'feed_cdata' ) ); $status = xml_parse( $this->parser, $source ); diff --git a/wp-includes/version.php b/wp-includes/version.php index a8c957a33f..87e3028830 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.7-alpha-59062'; +$wp_version = '6.7-alpha-59063'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.