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
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Connectons notre trait à une classe :
<?php
class Test
{
use TestTrait;
}
?>
Modifions la méthode pour la rendre publique dans la classe :
<?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
$test = new Test;
echo $test->method(); // affichera '!!!'
?>