Неколку трејтови во ООП во 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, кој ја враќа сумата на резултатите од методите на поврзаните трејтови.