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
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Connectons notre trait à une classe :
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Utilisons la méthode privée du trait :
<?php
class Test
{
use TestTrait; // connecter le trait
public function __construct()
{
echo $this->method(); // affichera '!!!'
}
}
new Test;
?>