Множество трейтове в ООП в PHP

В клас може да се използва не един, а няколко трейта. В това се проявява тяхното предимство пред наследяването. Необходимите за използване в класа трейтове могат да се посочат чрез запетая след ключовата дума use.

Нека разгледаме пример. Да предположим, че имаме два трейта. Първият:

Helper1.php<?php
  trait Helper1
  {
    private $name;
    
    public function getName()
    {
      return $this->name;
    }
  }
?>

Вторият:

Helper2.php<?php
  trait Helper2
  {
    private $age;
    
    public function getAge()
    {
      return $this->age;
    }
  }
?>

Нека използваме нашите трейтове в клас:

User.php<?php
  class User
  {
    use Helper1, Helper2; // свързваме трейтовете
    
    public function __construct($name, $age)
    {
      $this->name = $name;
      $this->age = $age;
    }
  }
?>
Задание 1

Създайте 3 трейта с имена Trait1, Trait2 и Trait3. Нека в първия трейт има метод method1, връщащ 1, във втория трейт - метод method2, връщащ 2, а в третия трейт - метод method3, връщащ 3. Нека всички тези методи са частни.

Задание 2

Създайте клас Test, използващ и трите създадени от нас трейта. Направете в този клас публичен метод getSum, връщащ сумата от резултатите на методите на свързаните трейтове.