Zmeny úrovní prístupu k metódam trait v OOP v PHP
Vnútri trait-u môžete použiť akúkoľvek úroveň prístupu
pre metódy (teda public, private
alebo protected). V prípade potreby však
v samotnej triede môžete túto úroveň zmeniť
na inú. Na to v tele use po
kľúčovom slove as je potrebné uviesť novú
úroveň prístupu.
Pozrime sa na príklad. Predpokladajme, že máme nasledujúci trait s privátnou metódou:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Pripojme náš trait k triede:
<?php
class Test
{
use TestTrait;
}
?>
Zmeňme v triede metódu na public:
<?php
class Test
{
use TestTrait {
TestTrait::method as public;
}
}
?>
Skontrolujme fungovanie public metódy zvonku triedy:
<?php
$test = new Test;
echo $test->method(); // vypíše '!!!'
?>