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

Postingan populer dari blog ini