[wp-trac] [WordPress Trac] #56033: PHP 8.2: explicitly declare all known properties
WordPress Trac
noreply at wordpress.org
Wed Aug 31 13:05:25 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:"54037" 54037]:
{{{
#!CommitTicketReference repository="" revision="54037"
Code Modernization: Explicitly declare all properties in `Services_JSON`.
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 `$use` property, as set in the class constructor, falls
in the “known property” category.
Reference: [https://wiki.php.net/rfc/deprecate_dynamic_properties PHP RFC:
Deprecate dynamic properties].
Follow-up to [11875], [53557], [53558], [53850], [53851], [53852],
[53853], [53854], [53856], [53916], [53935], [53936], [53937], [53938],
[53942], [53945], [53948], [53949], [53952], [53953], [53954], [53957].
Props jrf, antonvlasenko, costdev.
See #56033.
}}}
--
Ticket URL: <https://core.trac.wordpress.org/ticket/56033#comment:103>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list