Korišćenje trejtova u trejtovima
Trejtovi, slično klasama, takođe mogu koristiti druge trejtove. Pogledajmo na primeru. Pretpostavimo da imamo ovakav trejt sa dve metode:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Pretpostavimo da imamo još jedan trejt:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Hajde da trejtu Trait2 povežemo
trejt Trait1:
<?php
trait Trait2
{
use Trait1; // koristimo prvi trejt
private function method3()
{
return 3;
}
}
?>
Nakon ovakvog povezivanja, ispostaviće se da Trait2
pored svojih metoda imaće i metode
trejta Trait1. Proverimo ovo: napravićemo
klasu Test, povezaćemo sa njom trejt
Trait2 i uverićemo se da će u našoj klasi
pojaviti metode i prvog trejta,
i drugog:
<?php
class Test
{
use Trait2; // povezujemo drugi trejt
public function __construct()
{
echo $this->method1(); // metoda prvog trejta
echo $this->method2(); // metoda prvog trejta
echo $this->method3(); // metoda drugog trejta
}
}
?>
Samostalno napravite iste takve trejtove,
kao kod mene i povežite ih sa klasom Test.
Napravite u ovoj klasi metodu getSum,
koja vraća zbir rezultata metoda povezanih
trejtova.