Ndryshimet e të drejtave të qasjes në metodat e trait në OOP në PHP

Brenda një traiti mund të përdorni çdo modifikues qasjeje për metodat (d.m.th. public, private ose protected). Sidoqoftë, nëse është e nevojshme, në vetë klasën ky modifikues mund të ndryshohet në një tjetër. Për këtë, në trupin e use pas fjalës kyçe as duhet të specifikoni modifikuesin e ri.

Le ta shohim me një shembull. Le të themi se kemi trait-in e mëposhtëm me një metodë private:

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

Le ta lidhim trait-in tonë me klasën:

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

Le ta ndryshojmë metodën në publik në klasë:

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

Le të kontrollojmë funksionimin e metodës publike jashtë klasës:

php<?php
  $test = new Test;
  echo $test->method(); // do të shfaqë '!!!'
?>