__wakeup मेथड
__wakeup मेथड PHP में एक मैजिक मेथड है,
जो ऑब्जेक्ट के डी-सीरियलाइज़ेशन पर ऑटोमैटिकली कॉल होता है।
यह ऑब्जेक्ट के रिसोर्सेज को रीस्टोर करने या
डी-सीरियलाइज़ेशन के बाद अतिरिक्त एक्शन करने की अनुमति देता है।
सिंटैक्स
public function __wakeup(): void
{
// code
}
उदाहरण
__wakeup मेथड वाले क्लास का उदाहरण, जो
डेटाबेस कनेक्शन को रीस्टोर करता है:
<?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);
?>
उदाहरण
डी-सीरियलाइज़ेशन के बाद टेम्पोररी फाइल्स रीस्टोर करने का उदाहरण:
<?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);
?>
यह भी देखें
-
__sleepमेथड,
जो ऑब्जेक्ट सीरियलाइज़ेशन से पहले कॉल होता है -
__constructमेथड,
जो ऑब्जेक्ट क्रिएशन पर कॉल होता है