As funções mágicas __sleep e __wakeup


As funções mágicas __sleep e __wakeup

serialize() verifica se sua classe possui um método com o nome mágico __sleep. Se houver, ele será executado antes de qualquer serialização. Ele pode ser utilizado para fazer uma limpeza no objeto, e é esperado que retorne um array com os nomes de todos as variáveis deste objeto que devem ser serializados. Caso o método não retorne nada, NULL será serializado e um E_NOTICE será lançado.

O objetivo de uso do __sleep é confirmar dados pendentes ou realizar tarefas de limpezas. A função é também útil quando você está lidando com objetos muito grandes e que não precisam ser completamente salvos.

No caso inverso, unserialize() verifica a presença de um método com o nome mágico __wakeup. Caso exista, será chamado e poderá reconstruir qualquer recurso que este objeto pode ter.

A inteção de utilização do __wakeup é reestabelecer quaisquer conexões com banco de dados que podem ter sido perdidas durante a serialização e realizar outras tarefas de reinicialização.