Methode __wakeup
De methode __wakeup is een magische methode in PHP,
die automatisch wordt aangeroepen bij deserialisatie van een object.
Het maakt het mogelijk om bronnen van het object te herstellen of
aanvullende acties uit te voeren na deserialisatie.
Syntaxis
public function __wakeup(): void
{
// code
}
Voorbeeld
Voorbeeld van een klasse met de methode __wakeup, die
de databaseverbinding herstelt:
<?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);
?>
Voorbeeld
Voorbeeld van het herstellen van tijdelijke bestanden na deserialisatie:
<?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);
?>
Zie ook
-
methode
__sleep,
die wordt aangeroepen vóór serialisatie van het object -
methode
__construct,
die wordt aangeroepen bij het aanmaken van een object