Methode __wakeup
Die Methode __wakeup
ist eine magische Methode in PHP,
die automatisch bei der Deserialisierung eines Objekts aufgerufen wird.
Sie ermöglicht die Wiederherstellung von Ressourcen des Objekts oder die Ausführung
zusätzlicher Aktionen nach der Deserialisierung.
Syntax
public function __wakeup(): void
{
// code
}
Beispiel
Beispiel einer Klasse mit der Methode __wakeup
, die
die Datenbankverbindung wiederherstellt:
<?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);
?>
Beispiel
Beispiel zur Wiederherstellung temporärer Dateien nach der Deserialisierung:
<?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);
?>
Siehe auch
-
Methode
__sleep
,
die vor der Serialisierung eines Objekts aufgerufen wird -
Methode
__construct
,
die bei der Erstellung eines Objekts aufgerufen wird