Модификаторы доступа и трейты в ООП в PHP
Следует обратить ваше внимание на то, что использование трейтов - это не наследование. При наследовании приватные методы и свойства не наследуются.
В трейтах же все наоборот: в использующем трейт классе будут доступны как публичные, так и приватные методы и свойства класса.
Посмотрим на примере:
<?php
trait TestTrait
{
// Приватный метод:
private function method()
{
return '!!!';
}
}
class Test
{
use TestTrait; // подключаем трейт
public function __construct()
{
// Используем приватный метод трейта:
echo $this->method(); // выведет '!!!'
}
}
new Test;
?>