Il y a a quelques jours, en travaillant sur l'un de mes projets personnels, j'ai eu droit, à ma grande surprise, à la magnifique erreur PHP suivante :
Fatal error: uneClasse::__destruct(): The script tried to execute a method or access a property of an incomplete object.
Please ensure that the class definition "uneAutreClasse" of the object you are trying to operate on was loaded _before_
unserialize() gets called or provide a __autoload() function to load the class definition
in /le/fichier/qui/ne/fonctionne/pas.php on line 33
En gros, j'essayais de deserializer
un objet d'une classe dont mon script ne connaissait pas la structure car l'autoload
que j'avais mis en place ne parvenait pas à localiser le fichier contenant la classe en question.
Seul problème, le code concerné, éxécuté dans le cadre d'un test unitaire, ne faisait aucun appel à unserialize()
.
Chose encore plus étrange, en modifiant mon test de façon à ne pas générer d'exception, l'erreur disparaissait.