Употреба на трејтови во трејтови
Трејтовите, слично на класите, исто така можат да користат други трејтови. Ајде да погледнеме на пример. Нека имаме ваков трејт со два методи:
<?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,
кој ја враќа сумата на резултатите од методите на поврзаните
трејтови.