Více traitů v OOP v PHP
Ve třídě lze použít ne jeden, ale několik
traitů. V tom se projevuje jejich výhoda
oproti dědičnosti. Potřebné traity pro použití
ve třídě lze uvést čárkou oddělené
po klíčovém slově use.
Podívejme se na příklad. Předpokládejme, že máme dva traity. První:
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
Druhý:
<?php
trait Helper2
{
private $age;
public function getAge()
{
return $this->age;
}
}
?>
Použijeme naše traity ve třídě:
<?php
class User
{
use Helper1, Helper2; // připojíme traity
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
Vytvořte 3 traity s názvy Trait1,
Trait2 a Trait3. Nechť v prvním
traitu je metoda method1, vracející
1, v druhém traitu - metoda method2,
vracející 2, a ve třetím traitu
- metoda method3, vracející 3.
Nechť všechny tyto metody jsou privátní.
Vytvořte třídu Test, používající
všechny tři vytvořené traity. Vytvořte v
této třídě veřejnou metodu getSum,
vracející součet výsledků metod připojených
traitů.