====== Trait ====== Il est intéressant d'utiliser les **Trait** mais il faut éviter d'utiliser un **constructeur** car si vous devez écrire un constructeur dans une class qui utilise votre trait, alors le constructeur de votre trait sera surchargé et donc non exécuté. Si toute fois vous souhaitez utiliser un constructeur dans votre trait et souhaitez initialiser des propriétés dans votre class, utilisez l'exemple suivant trait Json{ public $meta; public $links; public $filters; public function __construct(){ $this->meta=[]; $this->links=[]; if(method_exists($this, 'set_filters')){ $this->filters = $this->set_filters(); } } } class SiteController extends Controller { use Json; public function set_filters(){ return [ 'doc' => [ 'in'=>'get', 'description'=>'affiche la documentation en fonction de la méthode http demandée', ], ]; } }