Više trejtova u OOP u PHP-u
U klasi se može koristiti ne jedan, već više
trejtova. U tome se ogleda njihova prednost
nasuprot nasleđivanju. Trejtove potrebne za korišćenje
u klasi možete navesti preko zareza
nakon ključne reči use.
Pogledajmo na primeru. Neka imamo dva trejta. Prvi:
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
Drugi:
<?php
trait Helper2
{
private $age;
public function getAge()
{
return $this->age;
}
}
?>
Upotrebimo naše trejtove u klasi:
<?php
class User
{
use Helper1, Helper2; // povezujemo trejtove
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
Napravite 3 trejta sa nazivima Trait1,
Trait2 i Trait3. Neka u prvom
trejtu bude metod method1, koji vraća
1, u drugom trejtu - metod method2,
koji vraća 2, a u trećem trejtu
- metod method3, koji vraća 3.
Neka svi ovi metodi budu privatni.
Napravite klasu Test, koja koristi
sva tri kreirana trejta. Napravite u
ovoj klasi javni metod getSum,
koji vraća zbir rezultata metoda povezanih
trejtova.