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(); // '!!!' чыгарат
?>