Бисёр трейтҳо дар ООП дар 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 созед, ки ҷамъи натиҷаҳои методҳои пайвастшудаи трейтҳоро бармегардонад.