ტრეიტების გამოყენება ტრეიტებში
ტრეიტებს, კლასების მსგავსად, ასევე შეუძლიათ სხვა ტრეიტების გამოყენება. მოდით შევხედოთ მაგალითს. დავუშვათ, გვაქვს ასეთი ტრეიტი ორი მეთოდით:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
დავუშვათ, გვაქვს კიდევ ერთი ტრეიტი:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
მოდით ტრეიტ Trait2-ს მივაბათ
ტრეიტი Trait1:
<?php
trait Trait2
{
use Trait1; // ვიყენებთ პირველ ტრეიტს
private function method3()
{
return 3;
}
}
?>
ასეთი მიბმის შემდეგ გამოდის, რომ Trait2
საკუთარი მეთოდების გარდა ექნება აგრეთვე ტრეიტის
Trait1 მეთოდებიც. შევამოწმოთ ეს: შევქმნათ
კლასი Test, მივაბათ მას ტრეიტი
Trait2 და დავრწმუნდეთ, რომ ჩვენს კლასში
გამოჩნდება მეთოდები როგორც პირველი ტრეიტის,
ასევე მეორესი:
<?php
class Test
{
use Trait2; // ვუკავშირებთ მეორე ტრეიტს
public function __construct()
{
echo $this->method1(); // პირველი ტრეიტის მეთოდი
echo $this->method2(); // პირველი ტრეიტის მეთოდი
echo $this->method3(); // მეორე ტრეიტის მეთოდი
}
}
?>
თავად გააკეთეთ იგივე ტრეიტები,
როგორიც მე მაქვს და მიაბეთ ისინი კლასს Test.
გაუკეთეთ ამ კლასს მეთოდი getSum,
რომელიც აბრუნებს მიბმული ტრეიტების მეთოდების შედეგების
ჯამს.