ტრეიტის მეთოდების წვდომის უფლებების ცვლილება PHP-ის OOP-ში
ტრეიტის შიგნით შეგიძლიათ გამოიყენოთ ნებისმიერი წვდომის მოდიფიკატორი
მეთოდებისთვის (ანუ 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(); // გამოიტანს '!!!'
?>