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