PHP
PHP / MySql



Recherche
 
ManuelPHP.com
Les classes et les objets (PHP 5)
<<<
__sleep et __wakeup __toString
>>>

5.10.14 Méthodes magiques
5.10 Les classes et les objets (PHP 5)
5 Référence du langage
 Manuel PHP

->__sleep et __wakeup
__toString
__set_state

5.10.14.1 __sleep et __wakeup

La fonction serialize vérifie si votre classe a une fonction avec le nom magique __sleep . Si c'est le cas, cette fonction sera exécutée avant toute linéarisation. Elle peut nettoyer l'objet et elle est supposée retourner un tableau avec les noms de toutes les variables de l'objet qui doivent être linéarisées.

Le but avoué de __sleep est de clore toutes les connexions aux bases de données que l'objet peut avoir, valider les données en attente ou effectuer des tâches de nettoyage. De plus, cette fonction est utile si vous avez de très gros objets qui n'ont pas besoin d'être sauvegardés en totalité.

Réciproquement, la fonction unserialize vérifie la présence d'une fonction dont le nom est le nom magique __wakeup . Si elle est présente, cette fonction peut reconstruire toute ressource que l'objet possède.

Le but avoué de __wakeup est de rétablir toute connexion base de données qui aurait été perdue durant la linéarisation et d'effectuer des tâches de réinitialisation.

Utilisation de Sleep et de wakeup

<?php
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();
    }
}
?>

<< __sleep et __wakeup >>
Les classes et les objets (PHP 5) Méthodes magiques __toString





Google

Services webmasters

L'actualité PHP

Les manuels
 

ManuelPHP.com © 2003-2008 Tigersun - Déclaration CNIL n°872143 - Crédits
Star academy - Comparer les prix - Programme TV - Entraide Informatique
2009-01-09