Modificadores de acesso e traits na POO em PHP
É importante chamar sua atenção para o fato de que o uso de traits não é herança. Na herança, métodos e propriedades privados não são herdados.
Com as traits, é o oposto: na classe que usa a trait, tanto os métodos e propriedades públicos quanto os privados da trait estarão disponíveis.
Vamos ver um exemplo. Suponha que temos a seguinte trait com um método privado:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Vamos conectar nossa trait à classe:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Vamos usar o método privado da trait:
<?php
class Test
{
use TestTrait; // conectamos a trait
public function __construct()
{
echo $this->method(); // exibirá '!!!'
}
}
new Test;
?>