Mitme trait'i kasutamine OOP-s PHP-s
Klassis saab kasutada mitte ühte, vaid mitut
trait'i. Just selles peitubki nende eelis
pärimise ees. Klassis kasutamiseks vajalikud
trait'id saab määrata komadega eraldatult
võtmesõna use järel.
Vaatame näidet. Oletame, et meil on kaks trait'i. Esimene:
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
Teine:
<?php
trait Helper2
{
private $age;
public function getAge()
{
return $this->age;
}
}
?>
Kasutame oma trait'e klassis:
<?php
class User
{
use Helper1, Helper2; // ühendame trait'id
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
Tehke 3 trait'i nimedega Trait1,
Trait2 ja Trait3. Olgu esimeses
trait'is meetod method1, mis tagastab
1, teises trait'is - meetod method2,
mis tagastab 2, ja kolmandas trait'is
- meetod method3, mis tagastab 3.
Olgu kõik need meetodid privaatsed.
Tehke klass Test, mis kasutab
kõiki kolme meie poolt loodud trait'i. Tehke
selles klassis avalik meetod getSum,
mis tagastab ühendatud trait'ide meetodite
tulemuste summa.