Make WordPress Core

Changeset 53953


Ignore:
Timestamp:
08/29/2022 01:17:28 PM (2 years ago)
Author:
SergeyBiryukov
Message:

Code Modernization: Explicitly declare WP-specific property in WP_SimplePie_File.

Dynamic (non-explicitly declared) properties are deprecated as of PHP 8.2 and are expected to become a fatal error in PHP 9.0.

There are a number of ways to mitigate this:

  • If it is an accidental typo for a declared property: fix the typo.
  • For known properties: declare them on the class.
  • For unknown properties: add the magic __get(), __set(), et al. methods to the class or let the class extend stdClass which has highly optimized versions of these magic methods built in.
  • For unknown use of dynamic properties, the #[AllowDynamicProperties] attribute can be added to the class. The attribute will automatically be inherited by child classes.

In this case, the $timeout property falls in the “known property” category.

Note: In contrast to the other properties being set in the constructor, this property is not declared on the parent class, so not inherited.

Reference: PHP RFC: Deprecate dynamic properties.

Follow-up to [10687], [53557], [53558], [53850], [53851], [53852], [53853], [53854], [53856], [53916], [53935], [53936], [53937], [53938], [53942], [53945], [53948], [53949], [53952].

Props jrf, antonvlasenko, costdev.
See #56033.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/class-wp-simplepie-file.php

    r50916 r53953  
    1919 */
    2020class WP_SimplePie_File extends SimplePie_File {
     21
     22    /**
     23     * Timeout.
     24     *
     25     * @var int How long the connection should stay open in seconds.
     26     */
     27    public $timeout = 10;
    2128
    2229    /**
Note: See TracChangeset for help on using the changeset viewer.