Комментарии 7
Добавьте, пожалуйста, в статью реализацию с использованием PHP 5.4 и трейтов.
Хм, а когда trait в PHP 5.4 стали динамическими примесями?
Пожалуй стало бы лучше, если б автор развёл понятия для уменьшения путаницы:
1) Примеси — для языков со множественным наследованием. В некоторых языках могут задаваться как во время исполнения, так и во время проектирования;
2) Черты — ответ PHP на просьбы о множественном наследовании. На текущий момент задаются только во время проектирования. Авторами PHP противопоставляется примесям из п.1;
3) Поведения — по сути, синтаксическо-магический сахар над композицией. Часто — попытка замены наследования композицией.
1) Примеси — для языков со множественным наследованием. В некоторых языках могут задаваться как во время исполнения, так и во время проектирования;
2) Черты — ответ PHP на просьбы о множественном наследовании. На текущий момент задаются только во время проектирования. Авторами PHP противопоставляется примесям из п.1;
3) Поведения — по сути, синтаксическо-магический сахар над композицией. Часто — попытка замены наследования композицией.
Если интересно посмотреть на динамические примеси, то это технология называется Introduction в мире AOP:
Эта фишка уже поддерживается в моем АОП-фреймворке для PHP. Если вкратце — она дает возможность к любому классу добавить «на лету» интерфейсы и трейты без изменения исходного кода класса. Если интересно — небольшой материал есть тут: Aspect-Oriented Pointcuts and Advices (последний параграф)
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 (последний параграф)
Начиная с версии 5.4.0, в PHP появится новая конструкция языка — трейты
Welcome to the World of Tomorrow!

Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Динамические примеси в PHP