Промени на пристапните права на методите на трејтот во ООП во PHP

Внатре во трејтот може да се користи било кој модификатор за пристап на методите (односно public, private или protected). Доколку е потребно, сепак, во самата класа може овој модификатор да се смени со друг. За ова во телото на use после клучното збор as треба да се наведе новиот модификатор.

Да погледнеме на пример. Нека имаме следниот трејт со приватен метод:

php<?php
  trait TestTrait
  {
    private function method()
    {
      return '!!!';
    }
  }
?>

Да го поврземе нашиот трејт со класата:

php<?php
  class Test
  {
    use TestTrait;
  }
?>

Да го смениме методот во класата во јавен:

php<?php
  class Test
  {
    use TestTrait {
      TestTrait::method as public;
    }
  }
?>

Да ја провериме работата на јавниот метод надвор од класата:

php<?php
  $test = new Test;
  echo $test->method(); // ќе испише '!!!'
?>