Modificarea drepturilor de acces la metodele trait în OOP în PHP
În interiorul unui trait puteți utiliza orice modificator
de acces pentru metode (adică public, private
sau protected). Cu toate acestea, dacă este necesar,
în clasa însăși puteți schimba acest modificator
cu altul. Pentru a face acest lucru, în corpul use după
cuvântul cheie as trebuie să specificați noul
modificator.
Să vedem un exemplu. Să presupunem că avem următorul trait cu o metodă privată:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Să conectăm trait-ul nostru la clasă:
<?php
class Test
{
use TestTrait;
}
?>
Să schimbăm metoda în publică în clasă:
<?php
class Test
{
use TestTrait {
TestTrait::method as public;
}
}
?>
Să verificăm funcționarea metodei publice din afara clasei:
<?php
$test = new Test;
echo $test->method(); // va afișa '!!!'
?>