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(); // шығарады '!!!'
?>