serialize() s'assure que votre classe a une méthode
avec le nom magique __sleep. Si c'est le cas, cette
fonction est appelée avant toute linéarisation. Elle peut alors nettoyer
l'objet et on s'attend à ce qu'elle retourne un tableau avec la liste des
noms de variables qui doivent être sauvées.
Le but de cette fonction __sleep est de fermer
proprement toute connexion à une base de données, de valider les
requêtes, de finaliser toutes les actions commencées. Cette fonction
est aussi pratique si vous ave de très grands objets qui n'ont pas
besoin d'être sauvé entièrement.
A l'inverse, unserialize() s'assure de la présence
de la fonction magique __wakeup. Si elle existe, cette
fonction reconstruit toutes les ressources d'un objet.
Le but de cette fonction __wakeup est de rétablit
toutes les connexions aux bases de données, et de recréer les
variables qui n'ont pas été sauvées.