Créer un singleton global à l'application.
Bonjour,
Je voudrais créer un singleton dont l'instance serait unique dans toute l'application. Malheureusement, il semble que l'instance créée par ma méthode get_instance ne dure que le temps de l'exécution du script. Prenons l'exemple ci dessous :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <?php
class SingletonCompteur {
private static $instance;
private $compteur;
private function __construct() {
$this->compteur = 0;
}
public static function get_instance() {
if(!isset(self::$instance)) {
self::$instance = new SingletonCompteur();
}
return self::$instance;
}
public function get_valeur() {
$this->compteur = $this->compteur + 1;
return $this->compteur;
}
}
echo SingletonCompteur::get_instance()->get_valeur();
echo '<br />';
echo SingletonCompteur::get_instance()->get_valeur();
?> |
Chaque appel à cet page produit le résultat "1 2", et non "1 2" puis "3 4" etc. comme je l'espérais.
J'ai pensé à utiliser $_SESSION mais il y aurait alors une instance du Singleton par utilisateur.
Hors j'aimerais utiliser ces singletons pour effectuer des traitements lourds à effectuer au lancement du serveur et pas à chaque chargement de page.
Savez vous comment s'y prendre?
D'avance merci,