356 of 410 menu

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
bydeenesfrptru