Utilização de Traits em Traits
Traits, assim como classes, também podem utilizar outras traits. Vamos ver um exemplo. Suponha que temos a seguinte trait com dois métodos:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Suponha que temos também outra trait:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Vamos conectar a trait Trait1 à
trait Trait2:
<?php
trait Trait2
{
use Trait1; // utilizando a primeira trait
private function method3()
{
return 3;
}
}
?>
Após essa conexão, resultará que Trait2
além de seus próprios métodos também terá os métodos
da trait Trait1. Vamos verificar isso: vamos criar
a classe Test, conectar a trait
Trait2 a ela e confirmar que em nossa classe
aparecerão métodos tanto da primeira trait,
quanto da segunda:
<?php
class Test
{
use Trait2; // conectando a segunda trait
public function __construct()
{
echo $this->method1(); // método da primeira trait
echo $this->method2(); // método da primeira trait
echo $this->method3(); // método da segunda trait
}
}
?>
Faça você mesmo as mesmas traits,
como as minhas e conecte-as à classe Test.
Crie neste classe o método getSum,
retornando a soma dos resultados dos métodos das traits
conectadas.