Trait — механізм повторного використання коду в мовах з одиночним успадкуванням. Trait містить реальні методи та властивості, які «вставляються» в клас оператором use. PHP підтримує traits з версії 5.4.
Коли корисний
Коли кілька непов'язаних класів потребують однакової поведінки, але спільний базовий клас не підходить. Наприклад, Timestampable, SoftDeletable, HasSlug — поведінки, що логічно не пов'язані між собою.
Підводні камені
Trait — не абстракція, а копіювання коду. Не замінює інтерфейс
При конфлікті імен між двома traits потрібне явне вирішення через insteadof / as
Складно тестувати окремо від класу, де використовується