Make WordPress Core


Ignore:
Timestamp:
09/11/2025 02:45:56 PM (3 months ago)
Author:
swissspidy
Message:

Code Modernization: Address reflection no-op function deprecations in PHP 8.5.

Reflection*::setAccessible() methods are no-ops since PHP 8.1. This commit adds conditional checks to only call these functions on older PHP versions.

Reference: PHP RFC: Deprecations for PHP 8.5: Deprecate `Reflection*::setAccessible()`.

Props rishabhwp, swissspidy.
Fixes #63956.
See #63061.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/interactivity-api/wpInteractivityAPI.php

    r60070 r60729  
    4242        $interactivity   = new ReflectionClass( $this->interactivity );
    4343        $namespace_stack = $interactivity->getProperty( 'namespace_stack' );
    44         $namespace_stack->setAccessible( true );
     44        if ( PHP_VERSION_ID < 80100 ) {
     45            $namespace_stack->setAccessible( true );
     46        }
    4547        $namespace_stack->setValue( $this->interactivity, $stack );
    4648    }
     
    5658        $interactivity = new ReflectionClass( $this->interactivity );
    5759        $context_stack = $interactivity->getProperty( 'context_stack' );
    58         $context_stack->setAccessible( true );
     60        if ( PHP_VERSION_ID < 80100 ) {
     61            $context_stack->setAccessible( true );
     62        }
    5963        $context_stack->setValue( $this->interactivity, $stack );
    6064    }
     
    587591    public function test_extract_directive_value() {
    588592        $extract_directive_value = new ReflectionMethod( $this->interactivity, 'extract_directive_value' );
    589         $extract_directive_value->setAccessible( true );
     593        if ( PHP_VERSION_ID < 80100 ) {
     594            $extract_directive_value->setAccessible( true );
     595        }
    590596
    591597        $result = $extract_directive_value->invoke( $this->interactivity, 'state.foo', 'myPlugin' );
     
    650656    public function test_extract_directive_value_empty_values() {
    651657        $extract_directive_value = new ReflectionMethod( $this->interactivity, 'extract_directive_value' );
    652         $extract_directive_value->setAccessible( true );
     658        if ( PHP_VERSION_ID < 80100 ) {
     659            $extract_directive_value->setAccessible( true );
     660        }
    653661
    654662        $result = $extract_directive_value->invoke( $this->interactivity, '', 'myPlugin' );
     
    684692    public function test_extract_directive_value_invalid_json() {
    685693        $extract_directive_value = new ReflectionMethod( $this->interactivity, 'extract_directive_value' );
    686         $extract_directive_value->setAccessible( true );
     694        if ( PHP_VERSION_ID < 80100 ) {
     695            $extract_directive_value->setAccessible( true );
     696        }
    687697
    688698        // Invalid JSON due to missing quotes. Returns the original value.
     
    705715    public function test_extract_prefix_and_suffix() {
    706716        $extract_prefix_and_suffix = new ReflectionMethod( $this->interactivity, 'extract_prefix_and_suffix' );
    707         $extract_prefix_and_suffix->setAccessible( true );
     717        if ( PHP_VERSION_ID < 80100 ) {
     718            $extract_prefix_and_suffix->setAccessible( true );
     719        }
    708720
    709721        $result = $extract_prefix_and_suffix->invoke( $this->interactivity, 'data-wp-interactive' );
     
    979991
    980992        $evaluate = new ReflectionMethod( $this->interactivity, 'evaluate' );
    981         $evaluate->setAccessible( true );
     993        if ( PHP_VERSION_ID < 80100 ) {
     994            $evaluate->setAccessible( true );
     995        }
    982996
    983997        $result = $evaluate->invokeArgs( $this->interactivity, array( $directive_value ) );
     
    13941408    public function test_kebab_to_camel_case() {
    13951409        $method = new ReflectionMethod( $this->interactivity, 'kebab_to_camel_case' );
    1396         $method->setAccessible( true );
     1410        if ( PHP_VERSION_ID < 80100 ) {
     1411            $method->setAccessible( true );
     1412        }
    13971413
    13981414        $this->assertSame( '', $method->invoke( $this->interactivity, '' ) );
Note: See TracChangeset for help on using the changeset viewer.