OOP:ssa PHP:n trait-metodien käyttöoikeusmuutoksista
Traitin sisällä voidaan käyttää mitä tahansa käyttöoikeusmodifioijaa
metodeille (eli public, private
tai protected). Tarvittaessa kuitenkin
luokassa itsessään tätä modifioijaa voidaan muuttaa
toiseksi. Tätä varten use-ruumiissa
as-avainsanan jälkeen
on määritettävä uusi modifioija.
Katsotaan esimerkkiä. Oletetaan, että meillä on seuraava trait yksityisellä metodilla:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Liitetään traitimme luokkaan:
<?php
class Test
{
use TestTrait;
}
?>
Muutetaan luokassa metodi julkiseksi:
<?php
class Test
{
use TestTrait {
TestTrait::method as public;
}
}
?>
Tarkistetaan julkisen metodin toiminta luokan ulkopuolelta:
<?php
$test = new Test;
echo $test->method(); // tulostaa '!!!'
?>