Modificadores de acceso y traits en POO en PHP
Debes prestar atención al hecho de que usar traits no es herencia. Con la herencia, los métodos y propiedades privados no se heredan.
Con los traits es todo lo contrario: en la clase que utiliza el trait, estarán disponibles tanto los métodos y propiedades públicos como los privados del trait.
Veamos un ejemplo. Supongamos que tenemos el siguiente trait con un método privado:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Conectemos nuestro trait a la clase:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Usemos el método privado del trait:
<?php
class Test
{
use TestTrait; // conectamos el trait
public function __construct()
{
echo $this->method(); // mostrará '!!!'
}
}
new Test;
?>