|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : novembre 2005 Messages : 26 ![]() |
voilà, je compte utilisé les objets en php.
je me suis retrouver face à un problème qui est que le constructeur se lance à chaque changement de page et j'ai pas trouver le moyen de garder les objets. en gros, j'ai un objet noyaux qui contient en ensemble d'autre objet pour la construction de la page. le constructeur de mon noyau initialise différent objet qu'il contient, comme l'objet menu. dans cet objet menu, le constructeur fait une requète sql pour générer le menu. et ces requètes ne doivent être faites que s'il y a un changements dans les autorisations. genre un visiteur non logué n'as pas le même menu qu'un visiteur logué et qu'un admin logué. donc en gros il ne devrait il y avoir de requète sql pour le menu qu'à l'ouverture du site et au log on de l'utilisateurs. et dans le cas présent, il y a des requètes à chaque fios qu'on navigue sur le site. si quelqu'un a une solutions à proposé, je suis preneur. si je demande de l'aide ici, c'est que j'ai pas trouvé par mes propres recherches. veuillez m'excuser si la réponse est présente ici, je ne l'ai pas trouvé |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() Étudiant Inscription : juillet 2004 Messages : 777 ![]() |
Pour passer les objet d'une page a l'autre il te faut utiliser serialize et unserialize
Par contre il te faudra definir dans ta classe les methodes __sleep et __wakeup. Au moins __sleep en tous cas |
|
|
00
|
|
|
#3 | ||
|
Membre à l'essai
![]() Inscription : novembre 2005 Messages : 26 ![]() |
pourquoi des sleep? je coupe les connection sql sql après chaque requète.
le serialize, pour les objets avec des collections d'objet, je ne le fais que sur celui qui les contients? ou je doit aussi le faire pour les objets contenu dans celui ci? donc si j'ai bien suivit ça donnerais ça: Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre expérimenté
![]() Étudiant Inscription : juillet 2004 Messages : 777 ![]() |
Non pas des sleep! une methode __sleep, elle sert a specifier a serialize ce qu'il doit traiter comme variable
Sinon oui ton code est pas mal teste mais tu risque d'avoir une surprise |
|
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Inscription : novembre 2005 Messages : 26 ![]() |
en fait la question avec __sleep , c'était est ce que c'est obligatoire s'il n'y a pas de connection ouverture. parce que normalement quand j'arrive au serialize à la fin du script, toutes les connections sql sont fermées.
oups, j'ai oublié des virgules dans mon code. pas bien. bon je vais test ça. |
|
|
00
|
|
|
#6 |
|
Membre expérimenté
![]() Étudiant Inscription : juillet 2004 Messages : 777 ![]() |
Oui test, parce que moi j'avais pas mit de __sleep et je n'avais pas le données comme il fallait
|
|
|
00
|
|
|
#7 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
|
|
|
00
|
|
|
#8 | |||
|
Membre à l'essai
![]() Inscription : novembre 2005 Messages : 26 ![]() |
Code :
Avec ça, ça passe niquel. Par contre sans les serialize et unserialize, j'ai cette erreur : Citation:
merci bien. apparemment, ça gène pas d'avoir la déclaration de classe après l'ouverture de session, j'ai pas d'erreur avec ce code là. |
|||
|
|
00
|
|
|
#9 | ||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Message d'erreur que vous obtenez peut être parce que votre session au moment du test contenait déjà un objet sérialisé deux fois et désérialisé une seule fois (une chaîne n'étant pas un objet nomclass ...).
La forme suivante est quand même plus simple à utiliser : Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com