Je suis en train d'atteindre l'objectif suivant:Résumé Singleton classe modèle
En utilisant cette classe générale singleton:
abstract class Singleton {
private static $instance = null;
public static function self()
{
if(self::$instance == null)
{
$c = __CLASS__;
self::$instance = new $c;
}
return self::$instance;
}
}
J'aimerais être en mesure de créer Singleton classe concrète tels que:
class Registry extends Singleton {
private function __construct() {}
...
}
puis les utiliser comme:
Registry::self()->myAwesomePonyRelatedMethod();
Mais inconsciemment __CLASS__
est prévu comme Singleton
donc une erreur fatale se produit à propos de PHP ne pouvant pas instancier une classe abstraite. Mais la vérité est que je veux que le registre (par exemple) soit instancié.
J'ai donc essayé avec get_class($this)
mais étant une classe statique, Singleton n'a pas $ this.
Que pouvais-je faire pour le faire fonctionner?
Quelle version de PHP vous utilisez? –
@Phoenix 5.3.0+ – Shoe
[Les singlesons sont mauvais] (http://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons) –