Vairāki treiti OOP PHP
Klasē var izmantot nevis vienu, bet vairākus
treitus. Tas arī parāda to priekšrocības
salīdzinājumā ar mantošanu. Vajadzīgos lietošanai
klasē treitus var norādīt, atdalot tos ar komatu
aiz atslēgvārda use.
Apskatīsim piemēru. Pieņemsim, ka mums ir divi treiti. Pirmais:
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
Otrais:
<?php
trait Helper2
{
private $age;
public function getAge()
{
return $this->age;
}
}
?>
Izmantosim mūsu treitus klasē:
<?php
class User
{
use Helper1, Helper2; // pievienojam treitus
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
Izveidojiet 3 treitus ar nosaukumiem Trait1,
Trait2 un Trait3. Lai pirmajā
treitā būtu metode method1, kas atgriež
1, otrajā treitā - metode method2,
kas atgriež 2, bet trešajā treitā
- metode method3, kas atgriež 3.
Lai visas šīs metodes būtu privātas.
Izveidojiet klasi Test, kas izmanto
visus trīs mūsu izveidotos treitus. Izveidojiet
šajā klasē publisku metodi getSum,
kas atgriež pievienoto treitu metožu rezultātu summu.