Salut à tous,
Dans le cadre d'un projet je dois créer plusieurs classes de type Singleton et par soucis de clarté je pensais créer une classe Singleton dont les autres hériteraient à la manière de ce qui se fait en C++ mais pour le moment j'ai un soucis.
Je m'explique. Voici en gros mon code :
Le problème est que le constructeur de la classe fille n'est jamais appelé mais c'est celui de la classe Singleton qui l'est (concrètement il affiche toujours 'toto'). Mon but est comme vous l'avez vu de montrer que la classe fille est de type Singleton par l'héritage et le constructeur privé mais sans encombrer plus le code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 class Singleton { private static $_instance = null; public static function getInstance() { if (is_null(self::$_instance)) { self::$_instance = new self(); } return self::$_instance; } private function __construct(){ echo 'toto'; } } class classeTypeSingleton extends Singleton { private function __construct(){ echo 'titi'; } } // Je récupère ainsi l'instance de la classe fille $instance = classeTypeSingleton::getInstance();
Ai-je fait une monstrueuse boulette ou est-ce juste impossible de fait ça?
Edit : Je viens de me rappeler qu'en C++ j'utilisais les templates pour parvenir au résultat voulu. Donc ma question deviens "est-ce que l'idée même que la classe mère Singleton à hériter est faisable en php ?"
merci d'avance
Partager