passage des objets par session

Mammouth du PHP | 1311 Messages

24 avr. 2006, 16:41

bon

en fait tu ne peut utiliser un objet dont tu ne connais pas la structure, le session_start recree ton objet, c'est pour ca que tu a besoin d'appeler le fichier de definition avant le session_start

pour sleep si mais souvenir sont bon
class objet{
public $param1;
public $param2;
private $bdd;

public function __sleep(){
return array('param1','param2');
}

public function __wakeup(){
$this->param1 = 'param1';
$this->param2 = 'param2';

$this->dbb = mysql_connect();
}
je suis pas du tout sur de l'implementation de __sleep et __wakeup, je ne les utilises quasiment jamais
si ton objet a besoin d'une connexion a une db tu la reinitialise avec la methode __wakeup

en effet ces deux fonction sont tres mal documenter :?

Eléphant du PHP | 120 Messages

24 avr. 2006, 16:55

tinkiete mon pote, j'ai trouvé chaussure a mon pied.

le lien suivant donne une exlication de ces fonctions, ou devrais je dire méthode ! en faite il faut les surcharger de sorte à ce qu'elles soient appelées automatiquement lors de la serialisation (ou linearisation).
le lien est le suivant :

http://php.mirrors.ilisys.com.au/manual ... .magic.php

par précaution je rajoute le code qui est donné en exemple, dans le cas ou le lien meurt :
class Connection {
   protected $link;
   private $server, $username, $password, $db;

   public function __construct($server, $username, $password, $db)
   {
       $this->server = $server;
       $this->username = $username;
       $this->password = $password;
       $this->db = $db;
       $this->connect();
   }

   private function connect()
   {
       $this->link = mysql_connect($this->server, $this->username, $this->password);
       mysql_select_db($this->db, $this->link);
   }

   public function __sleep()
   {
       mysql_close($this->link);
   }

   public function __wakeup()
   {
       $this->connect();
   }
}
la surcharge n'a rien de compliké. c cool.

en tt k merci pour ton aide jeff.

Eléphant du PHP | 120 Messages

24 avr. 2006, 17:23

encore une petite correction :
la méthode __sleep doir renvoyer un tableau, tout comme le décri jeff dans le post précedent (avec le nom des propriétés entre "" ou '').