Коришћење трејтова у трејтовима
Трејтови, слично класама, такође могу користити друге трејтове. Погледајмо на примеру. Претпоставимо да имамо овакав трејт са две методе:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Претпоставимо да имамо још један трејт:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Хајде да трејту Trait2 прикључимо
трејт Trait1:
<?php
trait Trait2
{
use Trait1; // користимо први трејт
private function method3()
{
return 3;
}
}
?>
Након оваквог прикључивања, добиће се да Trait2
поред својих метода има и методе
трејта Trait1. Проверимо ово: направимо
класу Test, прикључимо јој трејт
Trait2 и уверимо се да ће у нашој класи
се појавити методе како првог трејта,
тако и другог:
<?php
class Test
{
use Trait2; // прикључујемо други трејт
public function __construct()
{
echo $this->method1(); // метода првог трејта
echo $this->method2(); // метода првог трејта
echo $this->method3(); // метода другог трејта
}
}
?>
Самостално направите исте такве трејтове,
као код мене и прикључите их класи Test.
Направите у овој класи метод getSum,
који враћа збир резултата метода прикључених
трејтова.