__wakeup မှာ
__wakeup method သည် PHP ရှိ မှော်ဆန်သော method တစ်ခုဖြစ်ပြီး၊
object အား deserialize ပြုလုပ်သည့်အခါ အလိုအလျောက် ခေါ်ယူသည်။
၎င်းသည် object ၏ resources များပြန်လည်ထူထောင်ခြင်း သို့မဟုတ် deserialization ပြီးနောက်
အပိုဆောင်း လုပ်ဆောင်ချက်များလုပ်ဆောင်ရန် ခွင့်ပြုသည်။
Syntax
public function __wakeup(): void
{
// code
}
ဥပမာ
__wakeup method ပါရှိသော class ၏ ဥပမာ၊
database ဆက်သွယ်မှုကို ပြန်လည်ထူထောင်သည်:
<?php
class DatabaseConnection
{
private $connection;
public function __construct()
{
$this->connect();
}
private function connect()
{
$this->connection = 'db_connected';
}
public function __sleep()
{
return [];
}
public function __wakeup()
{
$this->connect();
}
}
$db = new DatabaseConnection();
$serialized = serialize($db);
$unserialized = unserialize($serialized);
?>
ဥပမာ
Deserialization ပြီးနောက် ယာယီဖိုင်များပြန်လည်ထူထောင်ခြင်း ဥပမာ:
<?php
class TempFileHandler
{
private $tempFiles = [];
public function addTempFile($file)
{
$this->tempFiles[] = $file;
}
public function __wakeup()
{
foreach ($this->tempFiles as $file) {
if (file_exists($file)) {
unlink($file);
}
}
$this->tempFiles = [];
}
}
$handler = new TempFileHandler();
$handler->addTempFile('temp1.txt');
$serialized = serialize($handler);
$unserialized = unserialize($serialized);
?>
ဆက်လက်ကြည့်ရှုရန်
-
__sleepmethod,
object serialization မပြုလုပ်မီ ခေါ်ယူသည် -
__constructmethod,
object ဖန်တီးသည့်အခါ ခေါ်ယူသည်