Make WordPress Core


Ignore:
Timestamp:
05/12/2023 08:49:13 AM (19 months ago)
Author:
SergeyBiryukov
Message:

Code Modernization: Explicitly declare all properties in Text_Diff_Engine_native.

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 properties, as used in the class methods, fall in the “known property” category.

Reference: PHP RFC: Deprecate dynamic properties.

Follow-up to [53942], [53948], [53949], [53952], [53953], [53954], [53957], [54037].

Props jrf, thomask.
See #58298.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/Text/Diff/Engine/native.php

    r55700 r55752  
    2828 */
    2929class Text_Diff_Engine_native {
     30
     31    public $xchanged;
     32    public $ychanged;
     33    public $xv;
     34    public $yv;
     35    public $xind;
     36    public $yind;
     37    public $seq;
     38    public $in_seq;
     39    public $lcs;
    3040
    3141    function diff($from_lines, $to_lines)
Note: See TracChangeset for help on using the changeset viewer.