Re: [VOTE] Deprecate dynamic properties

From: Date: Wed, 17 Nov 2021 04:35:25 +0000
Subject: Re: [VOTE] Deprecate dynamic properties
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-116435@lists.php.net to get a copy of this message
On Fri, Nov 12, 2021 at 5:08 AM Nikita Popov <nikita.ppv@gmail.com> wrote: > > Hi internals, > > I've opened the vote on > https://wiki.php.net/rfc/deprecate_dynamic_properties. Voting > will close > 2021-11-26. > > Regards, > Nikita In the Motivation section when talking about static analysis the RFC makes the claim: > The #[AllowDynamicProperties] attribute proposed in this RFC makes the cases where dynamic > properties are used intentionally explicit. however this really isn't true as the attribute is on the class rather than the use. Static analysis will still have no idea whether any dynamic property assignment is indeed a bug or intentional. The information added is only whether the author of the class has deemed it okay for dynamic properties to be used on it, not by it. The class author and the dynamic property user might not be the same person or have any relation. The class being intentionally used with dynamic properties is not necessarily in the user's control. Similarly the class being unintentionally used with dynamic properties may not be either. This user/used mismatch is repeated in the RFC, for example: > Classes marked with #[AllowDynamicProperties] as well as their children can continue using > dynamic properties without deprecation or removal. These classes cannot then use dynamic properties, they can have dynamic properties used on them. The inaccurate prevention claim is repeated as well: > #[AllowDynamicProperties] requires making classes that rely on dynamic properties explicit and > prevents accidental use of dynamic properties It may help prevent some, but others can skate through on happenstance. Cheers, Paul

« previous php.internals (#116435) next »