[wp-trac] [WordPress Trac] #56034: PHP 8.2: proposal for handling unknown dynamic properties deprecations

WordPress Trac noreply at wordpress.org
Wed Sep 18 18:44:30 UTC 2024


#56034: PHP 8.2: proposal for handling unknown dynamic properties deprecations
----------------------------+--------------------------------
 Reporter:  jrf             |       Owner:  hellofromTonya
     Type:  task (blessed)  |      Status:  accepted
 Priority:  normal          |   Milestone:  6.7
Component:  General         |     Version:
 Severity:  normal          |  Resolution:
 Keywords:  php82           |     Focuses:  php-compatibility
----------------------------+--------------------------------

Comment (by hellofromTonya):

 In [changeset:"59058" 59058]:
 {{{
 #!CommitTicketReference repository="" revision="59058"
 Code Modernization: Explicitly declare all properties in AtomParser.

 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's 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 build 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 property added are explicitly referenced in this class,
 so fall in the "known property" category.

 Refs:
 * https://wiki.php.net/rfc/deprecate_dynamic_properties

 Props jrf.
 See #56034.
 }}}

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


More information about the wp-trac mailing list