Trait to mechanizm do ponownego użytku kodu w wielu klasach, które nie są powiązane dziedziczeniem. Ponieważ PHP pozwala tylko na dziedziczenie pojedyncze, traity stanowią sposób na współdzielenie metod (i właściwości) poziomo — forma "kompozycyjnego" ponownego użytku kodu, jak mixiny.
Problem, który traity rozwiązują
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.
