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 .