Problème de session avec objets

Résolu
jackrichard Messages postés 43 Date d'inscription mardi 24 mai 2005 Statut Membre Dernière intervention 2 novembre 2008 - 20 déc. 2005 à 20:06
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 - 21 déc. 2005 à 21:06
salut a tous


voila mon problème j'utilise des objets et les sessions mais voilà lorsque je fixe mon objet dans ma session je le récupére vide et je ne peut utiliser les méthodes qui l'implémente on ma dit d'utiliser les méthode __sleep et __wake mais cela ne fonctionne pas pour autant





page contenant les définition d'objets





4 réponses

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
20 déc. 2005 à 21:04
Il faut que tu charges ta classe avant d'utiliser :
$objet = unserialise($_SESSION['objet']);

Par contre, je viens de voir que tu fais des trucs mauvais.

On instancie JAMAIS une classe dans une superglobale !!!!!!
On utilise la superglobal $_SESSION pour stocker ta classe sérialisée !!

Donc ce que tu dois faire :

<?php
$objet = new objet;

$objet->method();
$objet->method();

$_SESSION['objet'] = serialize($objet); // Utilisera la méthode magique __sleep() si elle est existante.
?>
<?php

if ( isset($_SESSION['objet']) ) {
$objet = unserialize($_SESSION['objet']);
}

$objet->method();

//...
?>

Par contre, ca ne sert à rien de sérialiser une classe de DB... pour la simple et bonne raison que tu dois fermer OBLIGATOIREMENT la connection à la fin de ta classe pour la réouvrir lors de l'instanciation futur...

Regarde toutes les classes de DB présentes sur PHPCS et sur le net, et tu verras qu'aucune utilise la méthode que tu fais toi, car c'est techniquement impossible.

Voila !
3
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
20 déc. 2005 à 23:19
De plus, une classe rien que pour les requetes, ca ne sert pas à grand chose.

Dans ce cas la, autant faire une classe de query, une classe de fetch, etc... :/ L'interêt est limité ici.

Nonon, ta classe de requete ne doit pas exister, elle doit etre implanté en tant que méthode de ta classe principale. Ce n'est pas comme ca que ca marche l'OO !
0
jackrichard Messages postés 43 Date d'inscription mardi 24 mai 2005 Statut Membre Dernière intervention 2 novembre 2008
21 déc. 2005 à 20:50
oki merci de vos conseil je vais pencher la dessus et c'est pas que je veuille utiliser les objet pour ca on me demande de faire une apli avec objet pour les requete
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
21 déc. 2005 à 21:06
Oui mais dans ce cas la, oriente le tout sous une seule classe.

Regarde les classes PHP5 déja présente, tu peux te servir d'une d'entre elle comme base pour une futur modification par exemple !
0
Rejoignez-nous