Pull to refresh

Comments 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 (последний параграф)
Начиная с версии 5.4.0, в PHP появится новая конструкция языка — трейты

Welcome to the World of Tomorrow!

image
UFO just landed and posted this here
Если traits и goto появляются, значит это кому-то нужно. А вот кому, для меня тоже загадка.
Sign up to leave a comment.