Utilizarea trait-urilor în trait-uri
Trait-urile, similar claselor, pot folosi de asemenea alte trait-uri. Să ne uităm la un exemplu. Să presupunem că avem următorul trait cu două metode:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Să presupunem că avem încă un trait:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Să conectăm trait-ul Trait1
la trait-ul Trait2:
<?php
trait Trait2
{
use Trait1; // folosim primul trait
private function method3()
{
return 3;
}
}
?>
După această conectare, rezultă că Trait2
pe lângă metodele sale va avea și metodele
trait-ului Trait1. Să verificăm acest lucru: să creăm
clasa Test, să conectăm la ea trait-ul
Trait2 și să ne asigurăm că în clasa noastră
vor apărea metode atât din primul trait,
cât și din al doilea:
<?php
class Test
{
use Trait2; // conectăm al doilea trait
public function __construct()
{
echo $this->method1(); // metoda primului trait
echo $this->method2(); // metoda primului trait
echo $this->method3(); // metoda celui de-al doilea trait
}
}
?>
Realizați independent aceleași trait-uri,
ca și ale mele și conectați-le la clasa Test.
Realizați în această clasă metoda getSum,
care returnează suma rezultatelor metodelor trait-urilor
conectate.