Hi Marcus, Am Mittwoch, den 20.02.2008, 20:59 +0100 schrieb Marcus Boerger: [...] > so at th eend of the day users will get renaming and will abuse it.
I disagree here. I think aliasing is fundamental to traits. If we think of traits as buckets of functionality, the concrete structure of the trait does not really matter. What matters is how the trait is used in the consuming class. Part of the usage is how the trait methods are exposed to the class. So I would really like to see aliasing support as long as there are no technical limitations that forbid proper and simple and understandable aliasing. > That said I am wondering if at the beginning we might want to do Traits > without aliasing and dropping. 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 have another syntax proposal: class Foo { consume TFoo { methodName as newMethodName; ignore otherMethod; } } "foo as bar" seems easy to grasp for me. Ignore seems to be technically correct, as the method is not dropped or removed but just ignored for the current class context. I would really prefer not to use "exhibit" or "possess". Most OOP terms are really basic english to make also non-english speakers get the concepts easily. "abstract", "class", "object", "interface", etc. pp. is pretty basic, while "exhibit" or "possess" is maybe not part of the common basic vocabulary. cu, Las
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil