Више трејтова у ООП-у у PHP-у
У класи се може користити не један, већ више
трејтова. У томе се и огледа њихова предност
у односу на наслеђивање. Потребне трејтове за употребу
у класи могу се навести зарезом
после кључне речи use.
Погледајмо на примеру. Претпоставимо да имамо два трејта. Први:
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
Други:
<?php
trait Helper2
{
private $age;
public function getAge()
{
return $this->age;
}
}
?>
Искористимо наше трејтове у класи:
<?php
class User
{
use Helper1, Helper2; // повезујемо трејтове
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
Направите 3 трејта са називима Trait1,
Trait2 и Trait3. Нека у првом
трејту буде метод method1, који враћа
1, у другом трејту - метод method2,
који враћа 2, а у трећем трејту
- метод method3, који враћа 3.
Нека сви ови методи буду приватни.
Направите класу Test, која користи
сва три направљена трејта. Направите у
тој класи јавни метод getSum,
који враћа збир резултата метода повезаних
трејтова.