Tags

, , , ,

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 :D”.
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 owner behavior 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.

Lanjut ke tulisan berikutnya untuk contoh-contoh program.

Advertisements