Am 22.02.2008 um 00:16 schrieb Stefan Marr:

Sounds a bit like what had been proposed in this paper: 
http://www.iam.unibe.ch/~scg/Archive/Papers/Duca07b-FreezableTrait.pdf

The first point, yes exclusion and aliasing are only meant to handle conflicts, and should be used only in this context. Yeah you can break the trait with it, but you did it explicitly, think this should be made clear a bit more in the discussion about "breaking interfaces".

Nobody would request unset to be removed from the function set even though you can do this:

$a = new A();
unset($a);
$a->foo();  //damn...

It is "almost" like excluding a method from a trait and be worried about the trait breaks. Isn't it? :)

I agree. It's called "asking for it". Since traits can only be added in dynamically, a programmer always knows what he is doing when excluding or aliasing a method in a trait.

PHP needs to stop worrying about the "confusing newbies" thing when discussing advanced features. We're not talking about a basic bread and butter language construct here. Other parts of PHP aren't beginner friendly either, and not all parts ever could, let alone should.


David

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to