Make WordPress Core

Changeset 59055


Ignore:
Timestamp:
09/18/2024 05:24:30 PM (9 months ago)
Author:
hellofromTonya
Message:

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:

Follow-up to [25002].

Props jrf.
See #62061.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/includes/utils.php

    r57749 r59055  
    296296    public function __construct( $in ) {
    297297        $this->xml = xml_parser_create();
    298         xml_set_object( $this->xml, $this );
    299298        xml_parser_set_option( $this->xml, XML_OPTION_CASE_FOLDING, 0 );
    300299        xml_set_element_handler( $this->xml, array( $this, 'start_handler' ), array( $this, 'end_handler' ) );
Note: See TracChangeset for help on using the changeset viewer.