Tuesday, December 2, 2014

Tutorial PHP OOP Part 17 : Mengenal Magic Methods

Pada PHP terdapat beberapa method yang disebut dengan magic method. Nama method-method ini diawali dengan "__" (dobel underscore). Dinamakan magic karena method ini merupakan method dengan fungsi khusus dan merupakan salah satu fitur dalam pemrograman PHP berorientasi object. Dan juga kita tidak boleh membuat function dengan nama yang sama dengan nama magic method.

Pada situs php.net, setidaknya disebutkan ada 15 magic method, yaitu: __construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() dan __debugInfo().

Beberapa dintaranya telah kita kenal melalui tulisan-tulisan sebelumnya seperti __construct, _destruct, __get(), __set(), __isset(), __unset(),__call() dan __callStatic().

Mari kita mengenal satu persatu magic method pada Pemrograman PHP berorientasi object :

1. __construct()

Merupakan method untuk membuat konstruktor sebuah class. Dengan method __construct() kita bisa membuat sebuah object sekaligus setting propertinya.

Lebih detail tentang method __construct() dapat dilihat pada Tutorial PHP OOP Part 8 : Membuat Constructor dan Destructor.

2. __destruct()

Adalah method yang dipakai untuk memusnahkan properti pada object setelah exit atau unset object.
Lebih detail tentang method __destruct() dapat dilihat pada Tutorial PHP OOP Part 8 : Membuat Constructor dan Destructor.

3. __call()

Adalah method yang digunakan saat memanggil method yang tidak dapat diakses (inaccessible method) didalam object .

Lebih detail tentang method __call() dapat dilihat pada Tutorial PHP OOP Part 16 : Konsep Overloading dalam PHP.

4. __callStatic()

Adalah method yang digunakan saat memanggil method yang tidak dapat diakses (inaccessible method) didalam static .

Lebih detail tentang method __callStatic() dapat dilihat pada Tutorial PHP OOP Part 16 : Konsep Overloading dalam PHP.

5. __get()

Adalah method digunakan untuk membaca data dari properti yang tidak dapat diakses (inaccessible property).

Lebih detail tentang method __get() dapat dilihat pada Tutorial PHP OOP Part 16 : Konsep Overloading dalam PHP.

6. __set()

Adalah method digunakan untuk menulis data pada properti yang tidak dapat diakses (inaccessible property).

Lebih detail tentang method __set() dapat dilihat pada Tutorial PHP OOP Part 16 : Konsep Overloading dalam PHP.

7. __isset()

Adalah method yang dipicu dengan memanggil method isset() atau empty() pada properti yang tidak dapat diakses (inaccessible property).

Lebih detail tentang method __isset() dapat dilihat pada Tutorial PHP OOP Part 16 : Konsep Overloading dalam PHP.

8. __unset()

Adalah method yang dipicu dengan memanggil method unset() pada properti yang tidak dapat diakses (inaccessible property).

Lebih detail tentang method __unset() dapat dilihat pada Tutorial PHP OOP Part 16 : Konsep Overloading dalam PHP.

9. __sleep()

Adalah method yang dipanggil saat proses serialisasi object melalui function serialize(). Jadi proses serialisasi mengecek apakah sebuah class memiliki method __sleep() didalamnya. Jika ya, maka function akan dijalankan sebelum proses serialisasi.

10. __wakeup()

Adalah kebalikan dari method __sleep(). Jika method __sleep digunakan saat proses serialisasi maka method __wakeup() digunakan saat proses unserialisasi dengan funstion unserialize(). Jadi fungsi ini dalam membangun kembali resource yang mungkin hilang setelah proses serialisasi.

11. __toString()

Adalah method yang memungkinkan sebuah class memutuskan bagaimana ia akan bereaksi bila diperlakukan seperti string.

Sebagai contoh bagaimana perintah echo $ obj ; akan dicetak. Method ini harus mengembalikan nilai string , karena kalau tidak akan dimunculkan fatal error : E_RECOVERABLE_ERROR.

12. __invoke()

Adalah method yang dipakai ketika sebuah script mencoba menghubungi objek sebagai function.

13. __set_state()

Adalah method yang dipakai saat mengeksport class dengan function var_export(), yaitu function yang mengeksport properti dalam method kedalam array ('property' => value, ...).

14. __clone()

Adalah method yang dipakai untuk membuat salinan object. Method __clone() dipilih daripada memiliki dua variabel yang menunjuk ke data aktual yang sama.

15.__debugInfo()

Adalah method yang dipanggil oleh function var_dump() ketika proses dumping object untuk memperoleh properti yang harus ditampilkan.

Jika method ini tidak didefinisikan pada objek , maka semua sifat public ,  private dan protected  akan ditampilkan .

Referensi :

0 komentar

Post a Comment