Změny přístupových práv k metodám traitů v OOP v PHP
Uvnitř traitu lze použít jakýkoli modifikátor
přístupu pro metody (tj. public, private
nebo protected). V případě potřeby však
lze v samotné třídě tento modifikátor změnit
na jiný. K tomu je v těle use za
klíčovým slovem as nutné uvést nový
modifikátor.
Podívejme se na příklad. Předpokládejme, že máme následující trait s privátní metodou:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Připojme náš trait ke třídě:
<?php
class Test
{
use TestTrait;
}
?>
Změníme ve třídě metodu na veřejnou:
<?php
class Test
{
use TestTrait {
TestTrait::method as public;
}
}
?>
Ověřme funkčnost veřejné metody mimo třídu:
<?php
$test = new Test;
echo $test->method(); // vypíše '!!!'
?>