Я пытаюсь достичь следующей цели:Аннотация 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;
}
}
Я хотел бы, чтобы быть в состоянии создать конкретный класс Singleton, такие как:
class Registry extends Singleton {
private function __construct() {}
...
}
, а затем использовать их в качестве:
Registry::self()->myAwesomePonyRelatedMethod();
Но неясно __CLASS__
предназначен как Singleton
, поэтому возникает фатальная ошибка, когда PHP не может создать экземпляр абстрактного класса. Но правда в том, что я хочу, чтобы реестр (например) был создан.
Так что я пробовал с get_class($this)
, но, будучи статическим классом, у Singleton нет $ this.
Что я могу сделать, чтобы это сработало?
Какая версия PHP вы используете? –
@Phoenix 5.3.0+ – Shoe
[Одиночество зла] (http://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons) –