OOP PHP-s treitud meetodite juurdepääsuõiguste muutmine

Treitud saab kasutada meetodite jaoks mis tahes juurdepääsumodifikaatorit (st public, private või protected). Vajadusel saab klassis siiski seda modifikaatorit muuta teiseks. Selleks tuleb use kehas pärast võtmesõna as määrata uus modifikaator.

Vaatame näidet. Oletame, et meil on järgmine treit privaatse meetodiga:

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

Ühendame oma treidi klassiga:

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

Muudame klassis meetodi avalikuks:

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

Kontrollime avaliku meetodi tööd klassist väljaspool:

php<?php
  $test = new Test;
  echo $test->method(); // väljastab '!!!'
?>