Возвращаю вас к тому, что плодить кучу экземпляров одного и того же объекта – признак дурного тона. Существует прием, который способен эффективно бороться с попыткой создать новый экземляр класса.

| Обратите внимание: необходимо соблюдать осторожностьпри проектировании магического метода __construct() и использования метода Singleton.
| |
Неоспоримыми плюсами данного метода являются:
+ Работа всего с одним объектом (хотя зачем тогда придумали статические объекты?);
+ Невозможность создавать клонов класса (при использовании метода getInstance());
+ Возможность не париться с присвоением экземляра класса одной переменной и её рашариванием;
...хотя без минусов тоже не обходится:
– Ожидайте проблем при попытке создать экземпляр класса;
– Сам метод и его реализация в настоящий момент ставятся под сомнение.
Код класса Singleton:
class Singleton {
public static function getInstance() {
static $instance = null;
if ( null === $instance ) {
$instance = new static();
}
return $instance;
}
}
Попробуйте реализовать его в каком-нибудь проекте.