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