As funções mágicas __sleep e __wakeup

serialize( ) verifica se sua classe tem uma função com o nome mágico __sleep . Se sim , essa função será executada antes de qualquer serialização . Assim é possível controlar a persistência do objeto enquanto deve retornar um array com os nomes de todas as variáveis daquele objeto que precisam ser serializadas .

__sleep é planejado para fechar quaisquer conexões com bancos de dados que o objeto tenha , realizar commits pendentes ou realizar tarefas de limpeza semelhantes . A função também é útil se você tem objetos muito grandes que não precisam ser salvos completamente .

Da mesma forma , unserialize( ) verifica pela presença de uma função com o nome mágico __wakeup . Se presente , esta função pode reconstruir quaisquer recursos que o objeto tenha .

__wakeup é planejado para restabelecer conexões com bancos de dados perdidas durante a serialização e para realizar outras tarefas de reinicialização .