Méthode __wakeup
La méthode __wakeup est une méthode magique en PHP,
qui est appelée automatiquement lors de la désérialisation d'un objet.
Elle permet de restaurer les ressources de l'objet ou d'effectuer
des actions supplémentaires après la désérialisation.
Syntaxe
public function __wakeup(): void
{
// code
}
Exemple
Exemple de classe avec la méthode __wakeup, qui
restaure la connexion à la base de données :
<?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);
?>
Exemple
Exemple de restauration de fichiers temporaires après désérialisation :
<?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);
?>
Voir aussi
-
méthode
__sleep,
qui est appelée avant la sérialisation de l'objet -
méthode
__construct,
qui est appelée lors de la création de l'objet