Trait'lerin Trait'lerde Kullanımı
Trait'ler, sınıflara benzer şekilde, başka trait'leri de kullanabilir. Bir örnek üzerinden gidelim. Şu iki metoda sahip bir trait'imiz olduğunu varsayalım:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Ayrıca başka bir trait'imiz daha olduğunu varsayalım:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Trait2 trait'ine Trait1
trait'ini bağlayalım:
<?php
trait Trait2
{
use Trait1; // ilk trait'i kullanıyoruz
private function method3()
{
return 3;
}
}
?>
Bu bağlamadan sonra, Trait2 trait'inin
kendi metodlarının yanı sıra Trait1 trait'inin
metodlarına da sahip olacağı sonucu çıkar. Bunu kontrol edelim:
Test sınıfını oluşturalım, Trait2 trait'ini
bu sınıfa bağlayalım ve sınıfımızda hem birinci trait'in
hem de ikinci trait'in metodlarının ortaya çıktığından emin olalım:
<?php
class Test
{
use Trait2; // ikinci trait'i bağlıyoruz
public function __construct()
{
echo $this->method1(); // birinci trait'in metodu
echo $this->method2(); // birinci trait'in metodu
echo $this->method3(); // ikinci trait'in metodu
}
}
?>
Benimkiyle aynı trait'leri kendiniz yapın
ve bunları Test sınıfına bağlayın.
Bu sınıfta, bağlanan trait'lerin metodlarının
sonuçlarının toplamını döndüren getSum
metodunu yapın.