Penggunaan Trait dalam Trait
Trait, mirip seperti kelas, juga dapat menggunakan trait lainnya. Mari kita lihat contohnya. Misalkan kita memiliki trait seperti berikut dengan dua metode:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Misalkan kita juga memiliki trait lain:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Mari kita hubungkan trait Trait1 ke
trait Trait2:
<?php
trait Trait2
{
use Trait1; // menggunakan trait pertama
private function method3()
{
return 3;
}
}
?>
Setelah koneksi seperti itu, hasilnya adalah Trait2
selain metodenya sendiri juga akan memiliki metode
trait Trait1. Mari kita verifikasi ini: buatlah
kelas Test, hubungkan trait
Trait2 ke dalamnya dan pastikan bahwa di kelas kita
akan muncul metode dari trait pertama,
maupun trait kedua:
<?php
class Test
{
use Trait2; // menghubungkan trait kedua
public function __construct()
{
echo $this->method1(); // metode trait pertama
echo $this->method2(); // metode trait pertama
echo $this->method3(); // metode trait kedua
}
}
?>
Buat sendiri trait yang sama seperti milik saya,
dan hubungkan ke kelas Test.
Buat di kelas ini metode getSum,
yang mengembalikan jumlah hasil metode dari trait
yang terhubung.