Re: RFC: Traits for PHP

From: Date: Wed, 20 Feb 2008 20:52:56 +0000
Subject: Re: RFC: Traits for PHP
References: 1 2 3 4 5 6 7 8 9 10  Groups: php.internals 
Request: Send a blank email to internals+get-35666@lists.php.net to get a copy of this message
On 20.02.2008, at 21:43, Stefan Marr wrote:
If we feel it gets necessary we probbaly might want to support a syntax like: 'trait_method' => false 'trait_method' => 'new_name' 'trait_method' => array('new_name', 'trait_method'
I'm not comfortable with this notation, since it strengthens the impression that it is renaming. In my eyes it looks like this: "trait_method => false" means trait_method is moved to false, it is deleted, but this leads to the wrong impression of this: "trait_method => new_name" means trait_method is moved to new_name, and I am absolutely against this notion. Renaming implies in my opinion all references to this method might be adjusted (what is not possible at all) and the original method is "lost". There are several problems with with "lost" method already discussed on this list, like not fulfilled requirements (the delete method thing). The aliasing notion has the benefit that a method has to be explicitly excluded to be removed. So the developer explicitly requests for a change that he will handle on its own.
I agree that its important to make this concept clear in the syntax and that Marcus's proposal does not make it sufficiently clear. I do like Lars' proposal however: I have another syntax proposal: class Foo { consume TFoo {
     methodName as newMethodName;
     ignore otherMethod;
} } maybe "as" should even be expanded to "alias" though the following does look like the english grammar police will get us: methodName alias newMethodName; regards, Lukas

« previous php.internals (#35666) next »