Re: [RFC] Remove PHP 4 Constructors

From: 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 [email protected] to get a copy of this message
Hey Levi,

> On 15 Jan 2015, at 17:16, Levi Morrison <[email protected]> wrote:
> 
> On Thu, Jan 15, 2015 at 9:55 AM, Andrea Faulds <[email protected]> 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/






Thread (115 messages)

« previous php.internals (#80579) next »