A trait metódusainak láthatósági módosítói változtatása PHP OOP-ben
Egy traitben bármilyen láthatósági módosót
használhatunk a metódusokhoz (vagyis public, private
vagy protected). Szükség esetén azonban
maga az osztály megváltoztathatja ezt a módosítót
másra. Ehhez a use törzsében a
as kulcsszó után meg kell adni az új
módosítót.
Nézzük ezt egy példán. Tegyük fel, hogy a következő traitünk van privát metódussal:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Kapcsoljuk a traitünket az osztályhoz:
<?php
class Test
{
use TestTrait;
}
?>
Változtassuk meg az osztályban a metódust publikusra:
<?php
class Test
{
use TestTrait {
TestTrait::method as public;
}
}
?>
Ellenőrizzük a publikus metódus működését az osztályon kívülről:
<?php
$test = new Test;
echo $test->method(); // kiírja '!!!'
?>