Bonjour. J'utilise plusieurs fois le patron de conception Singleton pour mon site. Je me suis dit que tant qu'à faire, autant en hériter. Or je rencontre un problème. Voici le code de mon Singleton:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <?php
class Singleton{
protected static $instance;
public static function getInstance(){
if(is_null(self::$instance)){
self::$instance = new Singleton();
}
return self::$instance;
}
private function __construct(){}
private function __clone(){}
}
?> |
Quand j'ai une classe BDD par exemple qui en hérite, le problème que je rencontre est que quand j'appelle getInstance(), étant donné qu'elle est défini dans Singleton, le self fait référence à la classe Singleton.
Ainsi
BDD::getInstance()->query(requete);
me dit que query n'est pas défini pour Singleton.
J'ai cherché sur le web est j'ai vu des explications concernant la résolution statique à la volée. Le problème c'est que quand je mets le mot static au lieu du self, c'est la même erreur...
J'avais entendu qu'il n'était pas possible d'hériter des méthodes statiques en php. Est-ce le cas?
Cordialement,
Partager