|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Membre actif
![]() ![]() |
bonjour à tous,
Bon, j'ai un soucis avec la serialisation d 'objet avec php5. J'ai lu pas mal de docs là-dessus sans réponse...appropriée. Voici la classe simplifié : Code :
Ensuite, si j'enlève le commentaire de : //$this->objConnex = new PDO($typeConn.':host=localhost;dbname=bdd','root',''); dans le constructeur, j'ai cette erreur : Citation:
Donc, ma question est : comment puis-je passer un objet PDO en le sérialisant ? Merci à tous, Fabrice |
|||
|
00
|
|
|
#2 |
|
Inscrit
Inscription : octobre 2006 Messages : 637 ![]() |
L'instance est serialisée : pas besoin de la ligne problématique.
Si vous la laissez : vous aurez deux instances, la new et celle de la session. Néanmois, la sérialisation et la dé-sérialisation sont automatiques avec les variables de session en PHP5. Pas besoin d'utiliser les fonctions serialize et unserialize. D'ailleurs, si vous êtes sous PHP5, je suspecte un cafouillage du pass-by-reference ...
__________________
Q: Dois-je haïr et cogner sur Microsoft ? R: Non, vous n'êtes pas obligé. Non pas que Microsoft n'est pas écoeurant, mais il y avait une culture hacker bien avant Microsoft et il y en aura une bien après que Microsoft aura été de l'histoire ancienne. Toute énergie dépensée à haïr Microsoft serait mieux employée par vos compétences et votre passion. Écrivez du bon code, cela brisera suffisamment Microsoft sans polluer votre karma. Comment devenir un hacker ? par Eric Steven Raymond |
|
|
00
|
|
|
#3 | |||
|
Membre actif
![]() ![]() |
salut,
Merci. On dirai que cela marche lorsque j'enleve le "new" et le "serialize" et "unserialize". Cela donne ceci : Code :
Citation:
Fabrice |
|||
|
00
|
|
|
#4 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Comme tend à le dire un des messages d'erreur rencontré je doute qu'un objet PDO soit directement sérialisable puisqu'il doit contenir contenir en son sein une ou plusieurs variables de type ressource.
Concernant les objets et leur sérialisation, vous devez impérativement avoir la déclaration des objets contenus dans la session avant l'appel à session_start. |
|
|
00
|
|
|
#5 |
|
Inscrit
Inscription : octobre 2006 Messages : 637 ![]() |
Vous pouvez aussi tenter le var_export(), quitte a faire une classe etendant PDO et a surcharger __set_state() pour resoudre les problemes de ressources ephemeres.
Concernant les objets et leur sérialisation, vous devez impérativement avoir la déclaration des objets contenus dans la session avant l'appel à session_start. Pas pour PDO ni que les autres interfaces objets aux extensions C. A nottez qu'__autoload() peut rendre des services a ce niveau.
__________________
Q: Dois-je haïr et cogner sur Microsoft ? R: Non, vous n'êtes pas obligé. Non pas que Microsoft n'est pas écoeurant, mais il y avait une culture hacker bien avant Microsoft et il y en aura une bien après que Microsoft aura été de l'histoire ancienne. Toute énergie dépensée à haïr Microsoft serait mieux employée par vos compétences et votre passion. Écrivez du bon code, cela brisera suffisamment Microsoft sans polluer votre karma. Comment devenir un hacker ? par Eric Steven Raymond |
|
|
00
|
|
|
#6 | |||||||
|
Membre actif
![]() ![]() |
Salut,
Bon, j'ai refais des tests et toujours sans succes... : Code :
Code :
Code :
Citation:
Fabrice |
|||||||
|
00
|
|
|
#7 | ||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
Citation:
|
||
|
|
00
|
|
|
#8 | |||
|
Membre actif
![]() ![]() |
Bonjour,
Citation:
On me dis : Citation:
Citation:
Par contre, je n'ai pas testé avec __autoload, et d'ailleurs je ne vois pas tres bien comment mettre çà en place, car j'ai deja __sleep et __wakeup. Fabrice |
|||
|
00
|
|
|
#9 | |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Votre classe test_serialize ne fait pas partie de PHP, elle n'est pas écrite en C sous la forme d'une extension donc sa définition doit être chargée avant session_start lorsque l'objet se trouve déjà en session. Pour les classes internes à PHP c'est déjà fait sinon vous ne pourriez pas les utiliser.
Citation:
La fonction __autoload peut, si elle est bien placée, charger pour vous les définitions des classes des objets qui sont en session plus éventuellement ceux que vous utiliseriez dans votre code. |
|
|
|
00
|
|
|
#10 | |
|
Membre confirmé
![]() Inscription : avril 2004 Messages : 496 ![]() |
Citation:
pourtant on m a dit que c etais faisable et que ce tracait bien de stocker les requetes preparé dans une session .. mais comment ? j ai lu ce thread et il n apporte pas de solution..
__________________
telecharger jeux pc |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com