[wp-trac] [WordPress Trac] #62061: Prepare for PHP 8.4

WordPress Trac noreply at wordpress.org
Wed Sep 18 17:24:46 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:"59055" 59055]:
 {{{
 #!CommitTicketReference repository="" revision="59055"
 Tests: Remove use of xml_set_object() in TestXMLParser.

 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 `TestXMLParser` helper utility.
 In this case, the callbacks were already using the recommended format and
 the call to `xml_set_object()` was completely redundant.

 As this is a test utility and was already causing pre-existing tests using
 the utility to fail, there is no need for dedicated tests to cover this
 change.

 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 [25002].

 Props jrf.
 See #62061.
 }}}

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/62061#comment:20>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list