Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1835 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] A quoi sert Serialize (vs $_SESSION)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] A quoi sert Serialize (vs $_SESSION)

n°1992562
durk
Posté le 12-05-2010 à 11:57:42  profilanswer
 

Bonjour à tous,
 
J'ai une question de débutant. Je voudrais savoir si qqn peut m'expliquer pourquoi utiliser la fonction serialize pour passer des paramètres entre differents scripts; notamment pourquoi la préférer à directement stocker ces paramètres dans la variable $_SESSION.
 
Essayez de détailler svp (noob inside), ou carrément un exemple dans lequel cela devient indispensable de serializer.  
 
Voila un bout du code trouvé sur le net qui me fait poser la question:
 

Code :
  1. $_SESSION['parametre']=serialize($parametre);


 
Pourquoi ne pas faire directement
 

Code :
  1. $_SESSION['parametre']=$parametre;


 
Merci à tous.
 :jap:

mood
Publicité
Posté le 12-05-2010 à 11:57:42  profilanswer
 

n°1992564
skeye
Posté le 12-05-2010 à 12:08:13  profilanswer
 

Serialize sert à obtenir une représentation d'un objet sous forme de chaine de caractères.
Dans la pratique on ne stocke que des chaines de caractères en session (ce que tu mets en session est par défaut stocké dans un fichier texte, sur le serveur).
Si tu essaies de mettre directement un objet il sera sérialisé quand même (sauf erreur de ma part), et il faudra de toute manière le désérialiser pour l'utiliser dans un autre script.


Message édité par skeye le 12-05-2010 à 12:08:23

---------------
Can't buy what I want because it's free -
n°1992572
durk
Posté le 12-05-2010 à 12:59:15  profilanswer
 

Merci pour ta réponse, effectivement je ne savais pas que les objets stockés dans la variable $_SESSION étaient converties en chaines de caractères. Me voici éclairé sur le sujet.
 
Thanks.
 :jap:

n°1992573
art_dupond
je suis neuneu... oui oui !!
Posté le 12-05-2010 à 13:02:08  profilanswer
 

il me semble qu'il y a aussi des méthodes "magiques" si on veut controler la sérialisation

 

edit: __sleep et __wakeup


Message édité par art_dupond le 12-05-2010 à 13:02:53

---------------
oui oui
n°1992575
durk
Posté le 12-05-2010 à 13:04:41  profilanswer
 

Dans la doc ils disent que PHP fait ces appels automatiquement (c'est du moins ce que j'en comprends):
 

Citation :

Lors de la linéarisation d'un objet, PHP tentera d'appeler la fonction membre __sleep  avant de linéariser. Cela permet à l'objet de faire un dernier nettoyage, etc. avant d'être linéarisé. De même, lorsque l'objet est restauré en utilisant unserialize(), la fonction membre __wakeup  est appelée.

Message cité 1 fois
Message édité par durk le 12-05-2010 à 13:05:12
n°1992577
skeye
Posté le 12-05-2010 à 13:12:07  profilanswer
 

durk a écrit :

Dans la doc ils disent que PHP fait ces appels automatiquement (c'est du moins ce que j'en comprends):
 

Citation :

Lors de la linéarisation d'un objet, PHP tentera d'appeler la fonction membre __sleep  avant de linéariser. Cela permet à l'objet de faire un dernier nettoyage, etc. avant d'être linéarisé. De même, lorsque l'objet est restauré en utilisant unserialize(), la fonction membre __wakeup  est appelée.



 
Ce qu'il veut dire c'est que tu peux utiliser ces fonctions pour faire des traitements supplémentaires.
Par exemple mettons que tu veux serializer un objet qui a ouvert un fichier/une connexion à une base de données/.... Tu peux fermer le fichier proprement dans __sleep, et le rouvrir dans __wakeup, pour rendre l'utilisation plus transparente.


---------------
Can't buy what I want because it's free -

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] A quoi sert Serialize (vs $_SESSION)

 

Sujets relatifs
intercepter l'expiration de la sessionPHP ARRAY : Besoin d'un cours, désolé
Les hébergeurs mutualisés qui proposent PHP 5.3+PHP Comment ouvrir un fichier sur un autre DISQUE ???
Update impossible PHP/ACCESSaide PHP
PHP 4.4.8 => PHP 5.3.2Fonctions WebMail sous PHP
PHP MyAdmin Comment reattribuer les droits ? GRANT ...CGI (avoir un fichier PHP)
Plus de sujets relatifs à : [PHP] A quoi sert Serialize (vs $_SESSION)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR