Bonjour,
Alors voila mon problème : pour faire simple, j'ai deux classes, une classe Person et une classe Event. La classe Person possède en attribut un tableau d'objets Event.
Pour garder un objet Person d'une page à une autre, je le serialize en le passant dans une variable de session dans la première page et le déserialize en récuperant ladite variable dans la seconde.
1ère page (code simplifié) :
2e page :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 session_start(); require_once 'Person.php'; require_once 'Event.php'; $p=new Person(); $p->addEvent(new Event()); $_SESSION['p']=$p;
Et là, d'après print_r, j'ai bien récupéré mon objet Person sauf que les éléments de son tableau d'Event ne sont pas reconnus comme des objets de la classe Event mais à la place, je me prends un "__PHP_Incomplete_Class_Object", sous-entendu la définition de la classe Event n'a pas été trouvée lors de la déserialization.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 require_once 'Person.php'; require_once 'Event.php'; session_start(); $p=$_SESSION['p']; //print_r pour vérifier que tout a bien été récupéré print_r($p);
Je ne comprends pas d'autant plus que j'ai bien appelé la définition des classes Person et Event avant d'appeler session_start(). Mon problème est donc de savoir où (dans la 2e page, dans le fichier Person.php ?), quand et comment inclure la définition de la classe Event. J'ai déjà essayé de jouer avec les méthodes magiques __autoload et __wakeup mais sans grand succès.
Merci d'avance pour votre aide.
Partager