Použití traitů v traitech
Traity, podobně jako třídy, také mohou používat jiné traity. Podívejme se na příklad. Předpokládejme, že máme takový trait se dvěma metodami:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Předpokládejme, že máme také další trait:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Připojme k traitu Trait2
trait Trait1:
<?php
trait Trait2
{
use Trait1; // použijeme první trait
private function method3()
{
return 3;
}
}
?>
Po takovém připojení bude Trait2
kromě svých metod mít také metody
trait Trait1. Ověřme to: vytvořme
třídu Test, připojme k ní trait
Trait2 a přesvědčme se, že v naší třídě
se objeví metody jak prvního traitu,
tak druhého:
<?php
class Test
{
use Trait2; // připojíme druhý trait
public function __construct()
{
echo $this->method1(); // metoda prvního traitu
echo $this->method2(); // metoda prvního traitu
echo $this->method3(); // metoda druhého traitu
}
}
?>
Samostatně vytvořte stejné traity,
jako já a připojte je ke třídě Test.
V této třídě vytvořte metodu getSum,
vracející součet výsledků metod připojených
traitů.