serialize() revisa si su clase tiene una
función con el nombre mágico
__sleep. De ser asÃ, esa función
es ejecutada antes de cualquier intento de seriación. Puede
limpiar el objeto y su intención es que devuelva una matriz
con los nombres de todas las variables de ese objeto que
deberÃan ser seriadas.
El uso planeado para __sleep es cerrar todas las
conexiones de bases de datos que pueda tener el objeto, aplicando
datos pendientes o realizando tareas similares de
limpieza. Asimismo, la función resulta útil si tiene
objetos bastante grandes que no necesitan ser guardados en su
totalidad.
De forma semejante, unserialize() revisa por la
presencia de una función con el nombre mágico
__wakeup. Si está presente, ésta
función puede reconstruir cualquier recurso que el objeto
pueda tener.
El uso planeado para __wakeup es reestablecer
cualquier conexión con bases de datos que hayan podido
perderse durante la seriación y realizar otras tareas de
reinicialización.