Modificateurs d'accès et traits en POO en PHP

Il convient de porter votre attention sur le fait que l'utilisation de traits - ce n'est pas de l'héritage. Lors de l'héritage, les méthodes et propriétés privées ne sont pas héritées.

Avec les traits, c'est l'inverse : dans la classe utilisant le trait, les méthodes et propriétés publiques et privées de la classe seront accessibles.

Regardons un exemple. Supposons que nous ayons le trait suivant avec une méthode privée :

php<?php
  trait TestTrait
  {
    private function method()
    {
      return '!!!';
    }
  }
?>

Connectons notre trait à une classe :

php<?php
  class Test
  {
    use TestTrait;
  }
  
  new Test;
?>

Utilisons la méthode privée du trait :

php<?php
  class Test
  {
    use TestTrait; // connecter le trait
    
    public function __construct()
    {
      echo $this->method(); // affichera '!!!'
    }
  }
  
  new Test;
?>