Treita metožu piekļuves tiesību maiņa OOP PHP

Treita iekšienē var izmantot jebkuru piekļuves modifikatoru metodēm (tas ir public, private vai protected). Ja nepieciešams, tomēr, pašā klasē šo modifikatoru var nomainīt uz citu. Lai to izdarītu, use pamattekstā aiz atslēgvārda as jānorāda jaunais modifikators.

Apskatīsim piemērā. Pieņemsim, ka mums ir šāds treits ar privātu metodi:

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

Pievienosim mūsu treitu klasei:

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

Mainīsim klasē metodi uz publisku:

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

Pārbaudīsim publiskās metodes darbību ārpus klases:

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