Assalamualaikum.. kembali lagi dengan saya Royyan. Kali ini kita akan belajar tentang Trait di PHP.
Kita akan berkenalan dengan fitur traits. Fitur traits ini agak mirip-mirip dengan interface yang kita pelajari di artikel yang berjudul PHP : What is different between abstract class and interface in PHP ? . Apa itu traits? Trait secara simple adalah kumpulan dari beberapa method yang ingin kalian pakai dalam class lain. Perbedaannya jika interface memiliki method yang harus diimplementasikan tiap kali digunakan. Nah sedangkan traits, ketika digunakan kita langsung daat menggunakan methodnya tanpa menulis lagi logic untuk method tersebut. Kenapa ini bisa dilakukan? Karena dalam trait sebuah method dideklarasikan berikut dengan logicnya.
Perhatikan contoh syntax berikut :
~/SinauPHP/code/traits/Sayap.phpCoba dilihat contoh diatas, ketika kita ingin mengimplementasikan interface sayap ke sebuah class, misal nih namanya class nya Ikan maka kita harusmengimplementasikan method terbang[];
~/SinauPHP/code/traits/Ikan.phpKebayang nggak tuh ikannya menjulang ke angkasa hehehe. Coba kita test
Jadi gini kalau kita tidak membuat method terbang di class Ikan, maka yang terjadi adalah error. Berbeda dengan interface, traits mengizinkan kita untuk tidak menulis method yang berada di traits. Cukup menggunakan keyword use nama_traits dan semua method yang ada didalam traits langsungdapat digunakan di class kita, enak kan? :D
Perhatikan contoh syntax berikut :
Kita membuat traits
~/SinauPHP/code/traits/Keju.phpPenggunaan trait ini di class Jerry :
~/SinauPHP/code/traits/Jerry.phpCoba perhatikan contoh diatas kita nggak mendefinisikan logic dari method terbang[] dari trait JetPack di class Jerry, coba kita test :
kesimpulannya adalah trait melakukan copy paste syntax dari trait ke class yang menggunakannya pada saat script dijalankan. Jadi laravel wajib menggunakan PHP 5.4 sebagai minimum. Karena, laravel menggunakan trait didalam core nya. Untuk pembahasan tenatng laravel dan trait akan kita pelajari di artikel selanjutnya.
Semoga bermanfaat Wassalamualaikum
In 5.4 PHP version trait is introduced to PHP object-oriented programming. A trait is like class however it is only for grouping methods in a fine-grained and reliable way. It isn't permitted to instantiate a trait on its own. Traits are introduced to PHP 5.4 to overcome the problems of single inheritance. As we know in single inheritance class can only inherit from one other single class. In the case of trait, it enables a developer to reuse sets of methods freely in several independent classes living in different class hierarchies.
Example
Output
Result of addition two numbers:8 Result of multiplication of two numbers:15
Explanation
In the above example, we have implemented a function from two traits in a single class. Due to trait, we are able to access multiple functions in a single class.
Note
We are using the "USE" keyword to access traits inside a class.
Updated on 29-Jun-2020 12:02:51
- Related Questions & Answers
- PHP Traits
- From and Into Traits In Rust Programming
- What is .htaccess in PHP?
- Difference between Traits and Abstract Classes in Scala.
- What is method overloading in PHP?
- What is header[] function in PHP?
- What is explode[] function in PHP?
- What is implode[] function in PHP?
- What is dependency injection in PHP?
- What is Exception Handling in PHP ?
- What is Trailing Comma in PHP?
- What is PHP Output Buffering?
- What is singleton design concept in PHP?
- What is Stringable Interface in PHP 8?
- What is the use of ini_set[] in PHP?