Změny přístupových práv k metodám traitů v OOP v PHP

Uvnitř traitu lze použít jakýkoli modifikátor přístupu pro metody (tj. public, private nebo protected). V případě potřeby však lze v samotné třídě tento modifikátor změnit na jiný. K tomu je v těle use za klíčovým slovem as nutné uvést nový modifikátor.

Podívejme se na příklad. Předpokládejme, že máme následující trait s privátní metodou:

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

Připojme náš trait ke třídě:

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

Změníme ve třídě metodu na veřejnou:

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

Ověřme funkčnost veřejné metody mimo třídu:

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