Trait on mekanismi koodin uudelleenkäyttöön useissa luokissa, jotka eivät liity toisiinsa periytymisen kautta. Koska PHP sallii vain yhden perinnön, traitit tarjoavat tavan jakaa metodeja (ja ominaisuuksia) vaakasuuntaisesti — eräänlainen "kompositionaalinen" koodin uudelleenkäyttö, kuten mixinit.
Ongelma, jonka traitit ratkaisevat
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.
