Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PHP 8.4 | Remove use of xml_set_object() #172

Merged
merged 2 commits into from
Oct 21, 2024

Commits on Oct 21, 2024

  1. PHP 8.4 | Remove use of xml_set_object()

    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.
    ```php
    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:
    ```php
    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 these deprecations for this codebase.
    
    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
    jrfnl authored and dd32 committed Oct 21, 2024
    Configuration menu
    Copy the full SHA
    f80b99b View commit details
    Browse the repository at this point in the history
  2. Add changelog item.

    dd32 authored Oct 21, 2024
    Configuration menu
    Copy the full SHA
    34c63db View commit details
    Browse the repository at this point in the history