Re: [VOTE] Deprecate dynamic properties

From: Date: Sat, 13 Nov 2021 11:25:58 +0000
Subject: Re: [VOTE] Deprecate dynamic properties
References: 1 2 3 4 5 6  Groups: php.internals 
Request: Send a blank email to internals+get-116340@lists.php.net to get a copy of this message
The way I see it, it might look similar to strict_types opt-in, but only on the surface. The amount of changes needed to make legacy code compliant with strict_types directive, would be tremendous, also there would be no simple one-size-fits-all solution like the #[AllowDynamicProperties]. In that sense, these two are hardly comparable. I agree with the change (not that I have a voting karma, just watching). I also agree with Andreas Heigl saying that at certain point changes like this probably should happen, and regardless of exactly when, it is going to cause debate and complaints, but we as community should probably prefer having a long deprecation cycle for smoother transition, which is why the suggested timeline is IMO good (that is, if the community represented by core devs will vote for this RFC). Opt-in strategy - #[DenyDynamicProperties] - for a change like this would effectively do nothing. I personally would be against this change at all then. Many thanks to the PHP team from userland, also for letting anyone voice their thoughts and concerns on important matters! Regards, Victor Bolshov, Software developer On za, nov 13, 2021 at 08:26, Peter Bowyer <phpmailinglists@gmail.com> wrote:
On Sat, 13 Nov 2021, 00:14 Christoph M. Becker, <cmbecker69@gmx.de <mailto:cmbecker69@gmx.de>> wrote:
Offering an opt-out of dynamic properties or some switch to disable the deprecation would not help in that regard.
Given this is a big change to the way PHP has behaved for decades I did wonder why the RFC didn't propose an opt-out of dynamic properties rather than opt-in, preserving the long-term language behaviour. So thanks for covering that. I think you and the PHP internals community will be surprised by how widely used dynamic properties are. I read through a handful of WordPress plugins we have installed and found a few. And in my own where I'm using a named class instead of an array. I work with modern framework based code most of the time and I find it easy to forget what is out there as quintessential or traditional PHP code. Whether we have #[AllowDynamicProperties] or #[DenyDynamicProperties] one set of PHP users is going to be doing a find & replace across their codebase. From a DX perspective I'd rather have #[DenyDynamicProperties] as it's like declaring strict_mode and opt-in. Either way are the planned engine changes feasible, as the feature of dynamic properties stays in the language but toggled off/on per class? Peter


« previous php.internals (#116340) next »