PHP OOPda Treyt metodlariga kirish huquqini o'zgartirish

Treyt ichida metodlar uchun har qanday kirish modifikatoridan foydalanish mumkin (ya'ni public, private yoki protected). Agar kerak bo'lsa, biroq, sinfning o'zida ushbu modifikatorni boshqasiga o'zgartirish mumkin. Buning uchun use tanasida as kalit so'zidan keyin yangi modifikatorni ko'rsatish kerak.

Keling, misol orqali ko'rib chiqaylik. Bizda shunday treyt bo'lsin privat metod bilan:

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

Keling, treytimizni sinfga ulaymiz:

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

Keling, sinfda metodni public qilib o'zgartiramiz:

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

Keling, public metodning ishlashini sinf tashqarisida tekshiramiz:

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