Trait metodų prieigos teisių pakeitimai OOP PHP

Traite galima naudoti bet kurį prieigos modifikatorių metodams (t.y. public, private arba protected). Jei reikia, vis dėlto, pačiame klasėje šis modifikatorius gali būti pakeistas kitu. Tam use kūne po raktažodžio as reikia nurodyti naują modifikatorių.

Pažiūrėkime pavyzdžiu. Tarkime, kad turime šį trait su privačiu metodu:

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

Prijungkime mūsų trait prie klasės:

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

Pakeiskime klasėje metodą į viešą:

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

Patikrinkime viešo metodo veikimą iš klasės išorės:

php<?php
  $test = new Test;
  echo $test->method(); // išves '!!!'
?>