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:

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

Drugi:

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

Upotrebimo naše trejtove u klasi:

User.php<?php
  class User
  {
    use Helper1, Helper2; // povezujemo trejtove
    
    public function __construct($name, $age)
    {
      $this->name = $name;
      $this->age = $age;
    }
  }
?>
Задание 1

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.

Задание 2

Napravite klasu Test, koja koristi sva tri kreirana trejta. Napravite u ovoj klasi javni metod getSum, koji vraća zbir rezultata metoda povezanih trejtova.