Die __wakeup-metode
Die metode __wakeup is 'n magiese metode in PHP
wat outomaties aangeroep word tydens die deserialisasie van 'n objek.
Dit laat toe om die objek se hulpbronne te herstel of
bykomende aksies uit te voer na deserialisasie.
Sintaksis
public function __wakeup(): void
{
// kode
}
Voorbeeld
Voorbeeld van 'n klas met 'n __wakeup-metode wat
'n databasisverbinding herstel:
<?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 die herstel van tydelike lêers na deserialisasie:
<?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);
?>
Sien ook
-
die metode
__sleep,
wat voor serialisasie van 'n objek aangeroep word -
die metode
__construct,
wat aangeroep word wanneer 'n objek geskep word