ՕՕՊ-ում 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(); // կարտադրի '!!!'
?>