Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
356 of 410 menu

Метад __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,
    які выклікаецца пры стварэнні аб'екта
byenru