Utilisation des traits dans les traits
Les traits, comme les classes, peuvent également utiliser d'autres traits. Regardons un exemple. Supposons que nous ayons le trait suivant avec deux méthodes :
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Supposons que nous ayons également un autre trait :
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Connectons le trait Trait1
au trait Trait2 :
<?php
trait Trait2
{
use Trait1; // utilisons le premier trait
private function method3()
{
return 3;
}
}
?>
Après une telle connexion, il s'avérera que Trait2
aura, en plus de ses propres méthodes, également les méthodes
du trait Trait1. Vérifions cela : créons une
classe Test, connectons-y le trait
Trait2 et assurons-nous que dans notre classe
apparaîtront les méthodes du premier trait
ainsi que du deuxième :
<?php
class Test
{
use Trait2; // connectons le deuxième trait
public function __construct()
{
echo $this->method1(); // méthode du premier trait
echo $this->method2(); // méthode du premier trait
echo $this->method3(); // méthode du deuxième trait
}
}
?>
Créez vous-même les mêmes traits
que les miens et connectez-les à la classe Test.
Créez dans cette classe la méthode getSum,
retournant la somme des résultats des méthodes des traits connectés.