[wp-trac] [WordPress Trac] #56033: PHP 8.2: explicitly declare all known properties

WordPress Trac noreply at wordpress.org
Tue Aug 30 13:55:51 UTC 2022


#56033: PHP 8.2: explicitly declare all known properties
--------------------------------------------+-----------------------------
 Reporter:  jrf                             |       Owner:  SergeyBiryukov
     Type:  task (blessed)                  |      Status:  accepted
 Priority:  normal                          |   Milestone:  6.1
Component:  General                         |     Version:
 Severity:  normal                          |  Resolution:
 Keywords:  has-patch php82 has-unit-tests  |     Focuses:
--------------------------------------------+-----------------------------

Comment (by SergeyBiryukov):

 In [changeset:"53957" 53957]:
 {{{
 #!CommitTicketReference repository="" revision="53957"
 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: [https://wiki.php.net/rfc/deprecate_dynamic_properties 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.
 }}}

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/56033#comment:100>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list