абстрактный класс расширяет абстрактный класс в php?

Я работаю над простым абстрактным классом базы данных. В моем использовании этого класса я хочу, чтобы какой-то экземпляр был синглом. Я думал о наличии абстрактного класса, который не является ничем , а затем распространяет его на другой абстрактный класс, который является синглом. Это возможно? Рекомендуемые?


Edit: Я хочу иметь два абстрактных, которые практически идентичны, за исключением одного сингла. Таким образом, единственное различие будет состоять в том, что каждый будет иметь все функции другого, но будет иметь другие свойства и методы, которые заставляют его вести себя как одиночный.

Я хотел бы иметь одну базовую базу кода для этого, так как я вношу изменения, мне не нужно синхронизировать два файла.

В том, как я делаю то, я считаю, что нет смысла использовать абстрактный синглтон. Это потому что,

1) То, что вы хотите быть одиночным, – это последний класс, который вы создаете для использования в приложении, будь то библиотека, модель, контроллер или представление, а не абстрактное.

2) Добавление метода singleton легко и может быть записано в 8 строках. Смотри ниже.

protected static $_instance; public static function getInstance() { if (!isset(self::$_instance)) { self::$_instance = new self(); } self::$_instance; } 

3) PHP 5.3 ниже версии не поддерживает позднюю статическую привязку. Это приведет к созданию экземпляра абстрактного класса вместо окончательного класса, наследующего его, и не будет функционировать должным образом, как уже упоминалось Гордоном и Нуккой. Таким образом, для обратной совместимости лучше избегайте этого.

Реализация одноэлементного шаблона должна удовлетворять двум требованиям:

  1. Он должен обеспечить механизм доступа к экземпляру класса singleton без создания объекта класса
  2. Он должен сохранять объект singleton так, чтобы он не был создан несколько раз

Пока это предусмотрено, вариации несколько. Нет ничего плохого в том, чтобы сделать абстракцию класса от другого абстрактного, если это то, что вам нужно. НО, как говорит @Gordon, помните, что переопределение статических методов / свойств вызывает своеобразное поведение в PHP <5.3.