Trait

PHP 🟡 Mid

Definition

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.
#core#interview#oop