Un trait è un meccanismo per riutilizzare il codice tra più classi che non sono correlate dall'ereditarietà. Poiché PHP consente solo l'ereditarietà singola, i trait forniscono un modo per condividere metodi (e proprietà) orizzontalmente — una forma di riutilizzo del codice "compositional", come i mixin.
Il problema che i trait risolvono
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.
