Zmeny úrovní prístupu k metódam trait v OOP v PHP

Vnútri trait-u môžete použiť akúkoľvek úroveň prístupu pre metódy (teda public, private alebo protected). V prípade potreby však v samotnej triede môžete túto úroveň zmeniť na inú. Na to v tele use po kľúčovom slove as je potrebné uviesť novú úroveň prístupu.

Pozrime sa na príklad. Predpokladajme, že máme nasledujúci trait s privátnou metódou:

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

Pripojme náš trait k triede:

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

Zmeňme v triede metódu na public:

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

Skontrolujme fungovanie public metódy zvonku triedy:

php<?php
  $test = new Test;
  echo $test->method(); // vypíše '!!!'
?>