Použití traitů v traitech

Traity, podobně jako třídy, také mohou používat jiné traity. Podívejme se na příklad. Předpokládejme, že máme takový trait se dvěma metodami:

Trait1.php<?php
  trait Trait1
  {
    private function method1()
    {
      return 1;
    }
    
    private function method2()
    {
      return 2;
    }
  }
?>

Předpokládejme, že máme také další trait:

Trait2.php<?php
  trait Trait2
  {
    private function method3()
    {
      return 3;
    }
  }
?>

Připojme k traitu Trait2 trait Trait1:

Trait3.php<?php
  trait Trait2
  {
    use Trait1; // použijeme první trait
    
    private function method3()
    {
      return 3;
    }
  }
?>

Po takovém připojení bude Trait2 kromě svých metod mít také metody trait Trait1. Ověřme to: vytvořme třídu Test, připojme k ní trait Trait2 a přesvědčme se, že v naší třídě se objeví metody jak prvního traitu, tak druhého:

Test.php<?php
  class Test
  {
    use Trait2; // připojíme druhý trait
    
    public function __construct()
    {
      echo $this->method1(); // metoda prvního traitu
      echo $this->method2(); // metoda prvního traitu
      echo $this->method3(); // metoda druhého traitu
    }
  }
?>
Задание 1

Samostatně vytvořte stejné traity, jako já a připojte je ke třídě Test. V této třídě vytvořte metodu getSum, vracející součet výsledků metod připojených traitů.