PHP'de OOP'de Birden Fazla Trait Kullanımı
Bir sınıfta bir değil, birden fazla trait
kullanılabilir. Onların kalıtım karşısındaki
avantajı da burada ortaya çıkar. Bir sınıfta
kullanılacak trait'ler, use anahtar
kelimesinden sonra virgülle ayrılarak belirtilebilir.
Bir örnek üzerinden görelim. Elimizde iki trait olduğunu varsayalım. Birincisi:
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
İkincisi:
<?php
trait Helper2
{
private $age;
public function getAge()
{
return $this->age;
}
}
?>
Trait'lerimizi bir sınıfta kullanalım:
<?php
class User
{
use Helper1, Helper2; // trait'leri bağlıyoruz
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
Trait1, Trait2 ve Trait3
adlarında 3 trait yapın. Birinci trait'te
1 döndüren method1 metodu, ikinci
trait'te 2 döndüren method2 metodu,
üçüncü trait'te ise 3 döndüren method3
metodu olsun. Tüm bu metodlar private olsun.
Oluşturduğumuz üç trait'i de kullanan Test
adında bir sınıf yapın. Bu sınıfta, bağlanan trait'lerin
metodlarının sonuçlarının toplamını döndüren public
getSum metodunu yapın.