30-04-2010, 10:57 AM
(Modification du message : 30-04-2010, 01:28 PM par NicoMSEvent.)
un petit test (je ne l'ai pas essayé, donc il se peut qu'il y ai des erreurs)
class t_DB {
private static $instance;
private static $nb_appel;
public static GetInstance(){ // on peut appeler cette fonction sans objet instancié
echo 'appel n°'.(self::$nb_appel++).' : ';
if(! self::$instance){ //si mon instance n'existe pas -> ça ne plante pas
//$this->instance n'existe pas (inaccessible comme ça pcq c'est du static)
echo 'connexion a la DB';//bug du forum, il m'a mangé ma balise "br"
$instance=new t_DB(...); //j'instancie ici l'objet
}
else {
echo 'déja connecté';//bug du forum, il m'a mangé ma balise "br"
}
return self::$instance;//je retourne l'objet stocké
}
private __construct(){//le constructeur est privé pour empecher de créer une autre instance en appelant ceci hors de la classe
}
}
exemple d'appel
$connection_db=t_DB::GetInstance(...);
$connection_db=t_DB::GetInstance(...);
page HTML a écrit :appel n°1 : connexion a la DB
appel n°2 : déja connecté
Je signale que je ne détiens pas la vérité unique et absolue, je peux me tromper. La critique peut aussi être constructive. Critiquez moi!
La quête d'Ewilan
http://easy2hack.ma-soiree.be
La quête d'Ewilan
http://easy2hack.ma-soiree.be