Wiele traitów w OOP w PHP
W klasie można używać nie jednego, a wielu
traitów. W tym przejawia się ich zaleta
w porównaniu z dziedziczeniem. Potrzebne do użycia
w klasie traity można wskazać przez przecinek
po słowie kluczowym use.
Spójrzmy na przykład. Załóżmy, że mamy dwa traity. Pierwszy:
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
Drugi:
<?php
trait Helper2
{
private $age;
public function getAge()
{
return $this->age;
}
}
?>
Użyjmy naszych traitów w klasie:
<?php
class User
{
use Helper1, Helper2; // podłączamy traity
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
Stwórz 3 traity o nazwach Trait1,
Trait2 i Trait3. Niech w pierwszym
traicie będzie metoda method1, zwracająca
1, w drugim traicie - metoda method2,
zwracająca 2, a w trzecim traicie
- metoda method3, zwracająca 3.
Niech wszystkie te metody będą prywatne.
Stwórz klasę Test, wykorzystującą
wszystkie trzy stworzone przez nas traity. Stwórz w
tej klasie publiczną metodę getSum,
zwracającą sumę wyników metod podłączonych
traitów.