Re: LSB forward_static_call()

From: Date: Mon, 23 Jun 2008 13:36:08 +0000
Subject: Re: LSB forward_static_call()
References: 1 2 3 4 5 6  Groups: php.internals 
Request: Send a blank email to internals+get-38539@lists.php.net to get a copy of this message
On Mon, Jun 23, 2008 at 2:16 AM, Jochem Maas <jochem@iamjochem.com> wrote: > and the same is not true of parent::? besides which I doubt any same code > would actually break if the semantics of self:: changed, much less than > if parent:: changed at any rate. > The behavior of the parent:: as it relates to "existing" code is not changing. The only change of behavior is as it relates to the usage of static:: when parent:: is called on a method. That is why making this decision is now. Once 5.3 is released the behavior of parent:: will be locked in much the same way self:: was in 5.0 > > Is this whole discussion pointless? given that you say 'static' has already > been > implemented ... doesn't that negate the requirement for > forward_static_call() and > also the need to repurpose parent::? > static:: has been implemented for quite some time and the reason why forward_static_call was created and the reason why we want to change parent:: have been discussed at some length on this list. I'm mildly suprised you haven't seen it. Try reading: http://www.digitalsandwich.com/archives/65-Late-static-binding....sorta.htmlIt gives a pretty good description of what I disagreed with in the current patch. Then http://www.ds-o.com/archives/68-Late-Static-Binding-Changes-to-parent.htmlintroduces three patches to potentially resolve my issues. The three patches are really standalone (save a mistake I made when creating the forwarding patch that caused me to include forward_static_call()). forward_static_call patch has been implemented already. While this addresses my concerns I think it does so in a far less than optimal way. The first patch is what Etienne is talking about implementing which I am totally in favor for. The second patch is really is the same as the first, it just introduces a new keyword (which I do not think is needed.)

« previous php.internals (#38539) next »