Как стать автором
Обновить

Комментарии 7

Добавьте, пожалуйста, в статью реализацию с использованием PHP 5.4 и трейтов.
Хм, а когда trait в PHP 5.4 стали динамическими примесями?
Пожалуй стало бы лучше, если б автор развёл понятия для уменьшения путаницы:
1) Примеси — для языков со множественным наследованием. В некоторых языках могут задаваться как во время исполнения, так и во время проектирования;
2) Черты — ответ PHP на просьбы о множественном наследовании. На текущий момент задаются только во время проектирования. Авторами PHP противопоставляется примесям из п.1;
3) Поведения — по сути, синтаксическо-магический сахар над композицией. Часто — попытка замены наследования композицией.
Если интересно посмотреть на динамические примеси, то это технология называется Introduction в мире AOP:

Introduction: declaring additional methods or fields on behalf of a type. AOP allows you to introduce new interfaces (and a corresponding implementation) to any advised object. For example, you could use an introduction to make a class implement an IsModified interface, to simplify caching. (An introduction is known as an inter-type declaration in the AspectJ community.)


Эта фишка уже поддерживается в моем АОП-фреймворке для PHP. Если вкратце — она дает возможность к любому классу добавить «на лету» интерфейсы и трейты без изменения исходного кода класса. Если интересно — небольшой материал есть тут: Aspect-Oriented Pointcuts and Advices (последний параграф)
НЛО прилетело и опубликовало эту надпись здесь
Если traits и goto появляются, значит это кому-то нужно. А вот кому, для меня тоже загадка.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий