Un trait este un mecanism pentru reutilizarea codului în mai multe clase care nu sunt legate prin moștenire. Deoarece PHP permite doar moștenirea simplă, trait-urile oferă o modalitate de a partaja metode (și proprietăți) în mod orizontal — o formă de reutilizare a codului de tip „compoziție", asemănătoare mixin-urilor.
Problema pe care o rezolvă trait-urile
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.
