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
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Le ta lidhim trait-in tonë me klasën:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Le të përdorim metodën private të trait-it:
<?php
class Test
{
use TestTrait; // lidhim trait-in
public function __construct()
{
echo $this->method(); // do të shfaqë '!!!'
}
}
new Test;
?>