Трейтлардаги методларга рұхсат ўзгартириш ООП да 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(); // '!!!' чиқади
?>