Modifikátory prístupu a trity v OOP v PHP
Mali by ste venovať pozornosť skutočnosti, že používanie traitov nie je dedenie. Pri dedení sa súkromné metódy a vlastnosti nededia.
V traitoch je to naopak: v triede, ktorá používa trait, budú dostupné ako verejné, tak aj súkromné metódy a vlastnosti trait-u.
Pozrime sa na príklad. Predpokladajme, že máme nasledujúci trait s súkromnou metódou:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Pripojme náš trait k triede:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Použime súkromnú metódu trait-u:
<?php
class Test
{
use TestTrait; // pripájame trait
public function __construct()
{
echo $this->method(); // vypíše '!!!'
}
}
new Test;
?>