Trait — это механизм для переиспользования кода в нескольких классах, которые не связаны наследованием. Поскольку PHP поддерживает только одиночное наследование, traits предоставляют способ делиться методами (и свойствами) горизонтально — форму «композиционного» переиспользования кода, подобно миксинам.
Проблема, которую решают traits
PHP has single inheritance — a class can extend only ONE parent. But you often want
to share the SAME methods across unrelated classes (e.g. logging, timestamps).
Duplicating the code is bad; traits let you reuse it without inheritance.
