Modifikuesit e Aksesit dhe Trait-et në OOP në PHP

Duhet t'i kushtoni vëmendje faktit që përdorimi i trait-eve nuk është trashëgimi. Gjatë trashëgimisë, metodat private dhe vetitë nuk trashëgohen.

Me trait-et është e kundërta: në klasën që përdor trait-in, do të jenë të aksesueshme si metodat dhe vetitë publike, ashtu edhe ato private.

Le të shohim 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;
  }
  
  new Test;
?>

Le të përdorim metodën private të trait-it:

php<?php
  class Test
  {
    use TestTrait; // lidhim trait-in
    
    public function __construct()
    {
      echo $this->method(); // do të shfaqë '!!!'
    }
  }
  
  new Test;
?>