Make WordPress Core

Changeset 53957


Ignore:
Timestamp:
08/30/2022 01:55:35 PM (2 years ago)
Author:
SergeyBiryukov
Message:

Code Modernization: Explicitly declare all properties in Gettext_Translations.

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 $_nplurals and $_gettext_select_plural_form properties, both being set in the class constructor, fall in the “known property” category.

Reference: PHP RFC: Deprecate dynamic properties.

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

Props jrf, antonvlasenko, costdev.
See #56033.

Location:
trunk/src/wp-includes/pomo
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/pomo/mo.php

    r51919 r53957  
    1414    class MO extends Gettext_Translations {
    1515
     16        /**
     17         * Number of plural forms.
     18         *
     19         * @var int
     20         */
    1621        public $_nplurals = 2;
    1722
  • trunk/src/wp-includes/pomo/translations.php

    r53331 r53957  
    182182
    183183    class Gettext_Translations extends Translations {
     184
     185        /**
     186         * Number of plural forms.
     187         *
     188         * @var int
     189         */
     190        public $_nplurals;
     191
     192        /**
     193         * Callback to retrieve the plural form.
     194         *
     195         * @var callable
     196         */
     197        public $_gettext_select_plural_form;
     198
    184199        /**
    185200         * The gettext implementation of select_plural_form.
Note: See TracChangeset for help on using the changeset viewer.