__wakeup မှာ

__wakeup method သည် PHP ရှိ မှော်ဆန်သော method တစ်ခုဖြစ်ပြီး၊ object အား deserialize ပြုလုပ်သည့်အခါ အလိုအလျောက် ခေါ်ယူသည်။ ၎င်းသည် object ၏ resources များပြန်လည်ထူထောင်ခြင်း သို့မဟုတ် deserialization ပြီးနောက် အပိုဆောင်း လုပ်ဆောင်ချက်များလုပ်ဆောင်ရန် ခွင့်ပြုသည်။

Syntax

phppublic function __wakeup(): void
{
  // code
}

ဥပမာ

__wakeup method ပါရှိသော class ၏ ဥပမာ၊ database ဆက်သွယ်မှုကို ပြန်လည်ထူထောင်သည်:

php<?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<?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 method,
    object serialization မပြုလုပ်မီ ခေါ်ယူသည်
  • __construct method,
    object ဖန်တီးသည့်အခါ ခေါ်ယူသည်