Method __sleep() adalah salah satu magic method yang dijalankan pada saat sebelum proses serialisasi object dengan functin serialize(). Jadi function __sleep() akan dieksekusi lebih dulu dari proses serialisasi object. Function __sleep() harus mengembalikan nilai array dari semua nilai yang harus diserialisasi oleh object.
Sedangkan method __wakeup() adalah salah satu magic method juga namun dijalankan pada saat sebelum proses deserialisasi object dengan function unserialize(). Sama dengan method __sleep(), method __wakeup juga dieksekusi lebih dulu dari proses deserialisasi object.
Contoh penggunaan method __sleep() dan __wakeup() pada proses serialisasi object.
Disini kita akan mengubah script program pada tulisan sebelumnya tentang serialisasi object. Kita akan memodifikasi file classa.inc dan menambahkan method __sleep() dan __wakeup() didalam class A sebagai berikut :
<?php
class A {
public $text;
public function tampilkan() {
echo $this->text;
}
public function __construct ($x) {
$this->text = $x;
}
public function __sleep() {
echo "Teks ini adalah hasil perintah method __sleep()</br>";
return array('text');
}
public function __wakeup() {
echo "Teks ini adalah hasil perintah method __wakeup()</br>";
}
}
?>
Dan berikut ini contoh tampilan saat proses serialisasi dengan menjalankan page1.php
Dan ini tampilan saat proses deserialisasi dengan menjalankan page2.php
Referensi :