რამდენიმე ტრეიტი OOP-ში 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, რომელიც აბრუნებს მიერთებული ტრეიტების მეთოდების შედეგების ჯამს.