Menggunakan Trait di PHP
Trait di PHP seperti class dalam
PHP. Ada property, method dan bisa dimuat dengan autoload class. Akan tetapi
trait tidak bisa diinstansiasi seperti class. Namun, property dan method bisa
di tempelkan ke dalam suatu class. Satu atau lebih trait dapat ditempelkan
dalam class. Trait membuat class seperti mengextend lebih dari satu class.
Download Magica v1.1.1 dari
halaman berikut
untuk mendapatkan class yang berfungsi untuk autoload. Lihat di
tutorial-tutorial sebelumnya, class autoload tersebut bernama
“Magica\Loader\Autoload”.
Download Script tutorial di sini.
Ekstrak magica ke dalam folder
yang berfungsi untuk menampung class-class. Di tutorial ini, dimasukkan ke
dalam “collection8/app/classes”. Lihat struktur folder berikut.
Buat 2 trait dalam collection8\app\classes\App\TraitsColllection:
1.
Di dalam file Trait1.php
2.
Di dalam file Trait2.php
Buat class yang akan ditempeli
trait yaitu di class App\Base di collection8/app/classes/App/Base.php
Buat script dimana class App\Base
diinstansiasi dan memanggil salah satu method dari trait
Hasil parsing script
Sekarang bagaimana menggabungkan
trait dengan method yang sama
buka file “collection8/app/classes/App/TraitsCollection/Trait3.php”
buka file
“collection8/app/classes/App/Base2.php” dimana Trait1 dan Trait3 digunakan
sekaligus dalam satu class yang bernama App\Base2. App\Base2 diinstansiasi di
collection8/trait1.php dan muncul error karena ada 2 method yang bernama sama
Lalu buka file
“collection8/app/classes/App/Base3.php”. Di file tersebut terdapat class
App\Base3 dimana Trait1 dan Trait3 diatur penggunaan methodenya agar tidak
terjadi conflict.
Class App\Base3 diinstansiasi di
“collection8/trait2.php” dan memanggil method traitMethodExample2. Berikut
hasilnya
Komentar
Posting Komentar