Modification des droits d'accès aux méthodes des traits en POO en PHP

À l'intérieur d'un trait, vous pouvez utiliser n'importe quel modificateur d'accès pour les méthodes (c'est-à-dire public, private ou protected). Si nécessaire, cependant, dans la classe elle-même, vous pouvez modifier ce modificateur pour un autre. Pour cela, dans le corps de use après le mot-clé as, vous devez spécifier le nouveau modificateur.

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;
  }
?>

Modifions la méthode pour la rendre publique dans la classe :

php<?php
  class Test
  {
    use TestTrait {
      TestTrait::method as public;
    }
  }
?>

Vérifions le fonctionnement de la méthode publique de l'extérieur de la classe :

php<?php
  $test = new Test;
  echo $test->method(); // affichera '!!!'
?>