Sabtu, 27 Februari 2016

Yii: Extending class without extends


Pengenalan
Sengaja pake judul ini biar ada permainan kata dikit :D. Judul yang bener harusnya “Mengenal behavior di Yii”.
A behavior can be used to enhance the functionality of an existing component without modifying its code. In particular, it can “inject” its own methods and properties into the component and make them directly accessible via the component. It can also respond to the events triggered in the component and thus intercept the normal code execution.
Ane gak tahu behavior itu ide originalnya Yii atau bukan. Tetapi yang jelas ini adalah salah satu fitur yang sangat ane sukai dari Yii. Kalau dilihat sekilas, konsepnya mirip dengan trait yang sudah banyak dikenal dalam dunia pemrograman. Sedikit perbedaannya, trait harus diterapkan saat definisi sedangkan behavior bisa diterapkan saat runtime.
Sesuai dengan judulnya, behavior digunakan untuk memperluas suatu class tanpa harus menurunkannya. Pertanyaannya mungkin, kapan kita menggunakan behavior dan kapan kita menurunkan class? Pertanyaan menarik, sayangnya jawaban yang bisa ane berikan cuman “sesuai dengan selera masing-masing”.
Sifat dari behavior adalah, dibuat sekali dan bisa dipakai berkali-kali. Ini bisa jadi alasan untuk menerapkan behavior alih-alih menurunkan class. Kekurangannya adalah tidak bisa merubah perilaku properti dan method bawaan dari class.

Fitur-Fitur
Apa saja yang bisa dilakukan oleh behavior? Sesuai dengan pengenalan di atas. Hal-hal yang bisa dilakukan oleh behavior antara lain

Inject property
Property yang dimiliki oleh behavior (public property) dapat diakses oleh ownerbehavior seolah-olah propertinya sendiri. Ini sangat berguna jika kita ingin menambah attribute pada objek tanpa harus mendefinisikan ulang.

Inject methode
Sama seperti property. Methode yang dimiliki oleh behavior dapat langsung dipakai oleh owner seolah-olah _methode_nya sendiri. Tetapi ini tidak berlaku jika owner telah punya methode dengan nama yang sama.
Response to event
Kita bisa medifinisikan methode di behavior dan mengattach event handler dari owner ke methode tersebut.


Sumber : https://mdmunir.wordpress.com/2014/09/14/yii-extending-class-without-extends/

Unknown

About Unknown

Jika ada 1000 pemuda soleh, akulah diantaranya. Jika ada 100 pemuda soleh, akulah diantaranya. Jika ada 10 pemuda soleh, akulah diantaranya. Jika ada 1 pemuda soleh, (mudah mudahan) akulah orangnya.

Subscribe to this Blog via Email :