Змяненне правоў доступу да метадаў трэйта ў ААП у 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(); // выведзе '!!!'
?>