Die "magischen" Funktionen
__sleep
und
__wakeup
serialize(
)
prüft
,
ob
Ihre
Klasse
eine
Funktion
mit
dem
magischen
Namen
__sleep
enthält
.
Wenn
dem
so
ist
,
wird
diese
Funktion
vor
einer
Serialisierung
ausgeführt
.
Sie
kann
das
Objekt
aufräumen
und
soll
ein
Array
mit
den
Namen
aller
Variablen
des
zu
serialisierenden
Objektes
zurückgeben
.
Die
beabsichtigte
Verwendung
von
__sleep
ist
,
eventuelle
Datenbankverbindungen
des
Objektes
zu
schließen
,
noch
offene
Daten
zu
committen
,
oder
ähnliche
Säuberungsaktionen
durchzuführen
.
Weiters
ist
diese
Funktion
hilfreich
,
wenn
Sie
sehr
große
Objekte
haben
,
die
nicht
komplett
gespeichert
werden
müssen
.
Umgekehrt
prüft
unserialize(
)
die
Existenz
einer
Funktion
mit
dem
magischen
Namen
__wakeup
.
Ist
diese
vorhanden
,
kann
sie
Ressourcen
des
Objektes
rekonstruieren
.
Die
vorgesehene
Verwendung
von
__wakeup
ist
die
Wiederherstellung
von
Datenbankverbindungen
,
welche
während
der
Serialisierung
verloren
gegangen
sein
könnten
,
sowie
andere
Neuinitialisierungen
.