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.
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.
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.
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.
Kita bisa medifinisikan methode di behavior dan mengattach event handler dari owner ke methode tersebut.