Re: [RFC] Remove PHP 4 Constructors
| From: | Andrea Faulds | Date: | Thu, 15 Jan 2015 17:21:27 +0000 |
| Subject: | Re: [RFC] Remove PHP 4 Constructors | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-80579@lists.php.net to get a copy of this message | ||
Hey Levi,
> On 15 Jan 2015, at 17:16, Levi Morrison <levim@php.net> wrote:
>
> On Thu, Jan 15, 2015 at 9:55 AM, Andrea Faulds <ajf@ajf.me> wrote:
>>
>> A better solution, IMO, might be simply to add a deprecation notice. This would make it
>> obvious during development if you’ve accidentally defined a PHP4 constructor, and would encourage
>> migration away from them, but wouldn’t prevent existing code from working.
>
> Possibly. The reality of my position is that I am unhappy about our
> current constructor situation. Having
__construct and only
> half-heartedly supporting old-style constructors for the next several
> years (maybe ten?) does not sound good at all.
I agree, it doesn’t. Unfortunately, I’m not sure if we have much choice here.
> Removing one of the constructors is a nicer end product than fully
> supporting both, in my opinion, which is why I proposed dropping it. I
> was hoping that a deprecation notice in 5.7 would be sufficient along
> with other standard migration tools and documentation, but since we
> have decided to not release 5.7 perhaps a deprecation would be better.
>
> At the same time I'm not thrilled about the amount of deprecation
> notices that could be generated if this is really as common as people
> seem to make it. I generally don't see these older constructors, but
> it seems when people have them they have *a lot* of them.
Yeah, I’m wondering about that. I imagine that a single request would probably result in a massive
spew of E_DEPRECATEDs, and that’s not good. :/
> I was okay
> with this in a theoretical 5.7 release to ease migration because it
> had a fixed lifespan of one release cycle but in version 7 it will
> stay for the duration of all PHP 7 releases.
>
> What do you guys think?
I wonder if we could hopefully get rid of them for PHP 8 or something, since it’s deprecated…
but then, if we don’t get rid of them now, we might never.
I’m not sure, really.
--
Andrea Faulds
http://ajf.me/