Podręcznik PHP
Poprzedni | Rozdział 13. Klasy i Obiekty | Następny

# Magiczne funkcje `__sleep` i `__wakeup`

serialize() sprawdza, czy twoja klasa zawiera funkcję o magicznej nazwie `__sleep`. Jeśli tak, ta funkcja jest wywoływana przed każdą serializacją. Może ona czyścić obiekt i powinna zwracać tablicę z nazwami wszystkich zmiennych obiektu, które powinny być serializowane.

Założonym użyciem `__sleep` jest zamknięcie wszystkich połączeń do baz danych, które obiekt może utrzymywać, zatwierdzenie wszystkich oczekujących danych lub wykonanie innych podobnych czynności czyszczących. Funkcja ta jest także przydatna jeśli masz bardzo duże obiekty, które nie muszą być zachowane w całości.

Analogicznie, unserialize() sprawdza czy istnieje funkcja o magicznej nazwie `__wakeup`. Jeśli tak, funkcja może rekonstruować dowolne zasoby które obiekt może posiadać.

Założonym użyciem `__wakeup` jest odnowienie połączeń z bazami danych, które mogły zostac utracone w procesie serializacji, oraz wykonanie innych czynności odbudowujących obiekt.

Poprzedni | Spis treści | Następny
Serializacja obiektów - obiekty w sesjach | Początek rozdziału | Referencje wewnątrz konstruktora