Utilizzo dei tratti nei tratti
I tratti, come le classi, possono anche utilizzare altri tratti. Diamo un'occhiata a un esempio. Supponiamo di avere questo tratto con due metodi:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Supponiamo di avere anche un altro tratto:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Colleghiamo il tratto Trait1
al tratto Trait2:
<?php
trait Trait2
{
use Trait1; // utilizziamo il primo tratto
private function method3()
{
return 3;
}
}
?>
Dopo questo collegamento, risulterà che Trait2
oltre ai propri metodi avrà anche i metodi
del tratto Trait1. Verifichiamolo: creiamo
una classe Test, colleghiamo ad essa il tratto
Trait2 e assicuriamoci che nella nostra classe
appariranno i metodi sia del primo tratto,
che del secondo:
<?php
class Test
{
use Trait2; // colleghiamo il secondo tratto
public function __construct()
{
echo $this->method1(); // metodo del primo tratto
echo $this->method2(); // metodo del primo tratto
echo $this->method3(); // metodo del secondo tratto
}
}
?>
Crea autonomamente gli stessi tratti,
come i miei e collegali alla classe Test.
Crea in questa classe il metodo getSum,
che restituisce la somma dei risultati dei metodi dei tratti
collegati.