wakeup()

Aus php bar

Wechseln zu: Navigation, Suche

Mit __wakeup() wurde das Gegenstück zu __sleep() implementiert. Besitzt eine Klasse diese Methode, so wird ihr Code dann ausgeführt, wenn ein kodierter String in ein Objekt deren Klasse mittels unserialize() umgewandelt (deserialisiert) werden soll.

Die vorgesehene Verwendung von __wakeup() ist beispielsweise die Wiederherstellung von Datenbankverbindungen, welche während der Serialisierung verloren gegangen sein könnten, sowie andere Neuinitialisierungen.

 class SerializeTest {
 	public $var  = 'Variable';
 	public $var1 = 'Variable 1';
 	private $resource = 'Resource id #1';
    
 	function __sleep() {
 		return array('resource');
 	}
 	function __wakeup() {
10 		echo 'Erstelle Datenbankverbindung für ' . $this->resource;
11 	}
12 }
13 
14 $Serialize = new SerializeTest();
15 $serialisiert = serialize($Serialize);		//__sleep()
16 $deserialisiert = unserialize($serialisiert);	//__wakeup()
17 
Ausgabe: Erstelle Datenbankverbindung für Resource id #1

Siehe auch: __sleep()


Persönliche Werkzeuge