Charger un objet php depuis une session

Charger un objet php depuis une session - PHP - Programmation

Marsh Posté le 06-05-2008 à 16:51:49    

Bonjour,
 
J'ai une petite question concernant le chargement de données d'un object.
 
J'ai ma classe tableau avec des attributs et tout le tralala je la charge dans ma session comme ceci :
 

Code :
  1. private function saveParam(){
  2. if($_SESSION[$this->tablename]!=$this)
  3. {
  4.  $_SESSION[$this->tablename]=serialize($this);
  5. }
  6. }


 
 
Et ensuite sur la page suivante, j'aimerai bien m'en reservir ! donc je la charge de telle maniere :
 

Code :
  1. private function chargerParam(){
  2. if(isset($_SESSION[$this->tablename]) && !empty($_SESSION[$this->tablename]))
  3. {
  4.  $this = unserialize($_SESSION[$this->tablename]);
  5. }
  6. }


 
et là PAF interdit de modifier $this ! oui mais je fais comment alors pour recharger tous mes attributs d'un coup ?
 

Reply

Marsh Posté le 06-05-2008 à 16:51:49   

Reply

Marsh Posté le 06-05-2008 à 16:55:50    

Faut le faire à l'extérieur. Genre met chargerParam en static, qui retournera un objet prêt...

Reply

Marsh Posté le 06-05-2008 à 17:01:10    

mouaisss, c'est un peu nul à l'utilisation je trouve :s car pour instancier mon tableau, faudrait que je vérifie si l'objet existe pour ensuite le crée selon les 2 cas. . . c'est ça ?

Reply

Marsh Posté le 06-05-2008 à 17:04:14    

La fonction qui tape dans la session comme ça, c'est assez bof.
 
Où est appellée la fonction chargerParam ?

Reply

Marsh Posté le 06-05-2008 à 17:18:11    

a l'instanciation de mon tableau dans le constructeur pour verifier si il existe deja ou non


Message édité par Bluntch le 06-05-2008 à 17:20:49
Reply

Marsh Posté le 07-05-2008 à 09:25:15    

Y'a un problème de design je pense, le constructeur ne doit pas être lié à une implémentation donnée (ici sérialization en session). Peut-tu poster un peu plus de code, genre la classe avec son constructeur ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed