PHP OOP-daky treýt metodlaryna ygtyýar goragynyň üýtgemegi

Treýt içinde metodlar üçin islendik ygtyýar gorag üýtgeşigi ulanmak bolýar (ýagny public, private ýa-da protected). Zerur bolsa, şonda-da, klas içinde bu üýtgeşigi başga birine üýtgedip bolýar. Munun üçin use jisminde açar söz as-dan soň täze üýtgeşigi görkezmeli.

Mysal üstünde göreli. Bizde şeýle şahsy metoda eýe treýt bolsun:

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

Treýtimyzy klasa birikdireli:

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

Klasyň içinde metodu ýörite ýagdaýa üýtgedeliň:

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

Ýörite ýagdaýdaky metodynyň işini klas daşyndan barlalyň:

php<?php
  $test = new Test;
  echo $test->method(); // '!!!' çykarar
?>