Учебник РНР (перевод Alexandr Pyramidin) Размещено на PHPClub.Net
Назад Глава 13. Классы и Объекты Вперёд

Магические функции __sleep и __wakeup

serialize() проверяет, имеется ли в вашем классе функция с "магическим" именем __sleep. Если да, эта функция запускается до выполнения любой сериализации. Она может зачистить объект, и предполагается, что она возвращает массив имён всех переменных этого объекта, которые должны быть сериализованы.

Назначение функции __sleep - закрыть любые соединения с БД, которые может иметь объект, подтверждая отправку данных или выполняя аналогичные задачи очистки. Также эта функция используется, если у вас имеются очень большие объекты, которые не нужно сохранять целиком.

И наоборот, unserialize() проверяет наличие функции с "магическим" именем __wakeup. Если да, эта функция может реконструировать любой ресурс, имеющийся у объекта.

Назначение функции __wakeup - восстановить любые соединения с БД, которые могли быть потеряны в процессе сериализации, и выполнить другие задачи реинициализации.


Назад Оглавление Вперёд
Сериализация объектов - объекты сессий Вверх Ссылки внутри конструктора