Trait
PHP 🟡 MidDefinition
Mecanisme de reutilisation de code dans les langages a heritage simple. Un trait permet d'injecter des methodes dans plusieurs classes sans heritage.
Analogie
Comme un kit d'accessoires qu'on peut ajouter a n'importe quelle voiture, peu importe la marque.
Exemple de code
trait Timestampable {
public function getCreatedAt(): DateTime {
return $this->createdAt;
}
}
class Article {
use Timestampable;
}
Cas d'usage
Pour partager du comportement commun (logging, timestamps, soft delete) entre classes non liees par heritage.
Anti-pattern
Abuser des traits pour tout partager au lieu de privilegier la composition ou les interfaces.