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