Použitie traitov v traitoch
Traity, podobne ako triedy, môžu tiež používať iné traity. Pozrime sa na príklad. Predpokladajme, že máme takýto trait s dvoma metódami:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Predpokladajme, že máme aj ďalší trait:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Pripojme k traitu Trait2
trait Trait1:
<?php
trait Trait2
{
use Trait1; // používame prvý trait
private function method3()
{
return 3;
}
}
?>
Po takomto pripojení bude mať Trait2
okrem svojich metód aj metódy
trait-u Trait1. Overme to: vytvorme
triedu Test, pripojme k nej trait
Trait2 a presvedčme sa, že v našej triede
sa objavia metódy ako prvého trait-u,
tak aj druhého:
<?php
class Test
{
use Trait2; // pripájame druhý trait
public function __construct()
{
echo $this->method1(); // metóda prvého trait-u
echo $this->method2(); // metóda prvého trait-u
echo $this->method3(); // metóda druhého trait-u
}
}
?>
Samostatne vytvorte rovnaké traity,
ako mám ja a pripojte ich k triede Test.
Vytvorte v tejto triede metódu getSum,
ktorá vráti súčet výsledkov metód pripojených
trait-ov.