Давайте поговорим о Singletone. Почему его считают антипаттенном, где его используют и что с этой информацией делать.
1. Сделали приватным конструктор, чтобы не могли вызвать его.
Таким образом:
$a = new Singletone() - не сработает!
А как же обратиться к нашему классу?
А вот так:
$a = Singletone::getInstance();
Идея какая. Мы один раз инициировали класс и дальше из любого куска кода можем использовать. И переопределить не можем, а только считывать данные, ведь нам не нужно на каждый чих переподключаться к БД!
Но
1. Static - не является ООП.
2. Singletone - это фактически глобальная переменная, которая отовсюду доступна, что не есть хорошо.
Где можно использовать:
1. подключение к БД
2. конфиги получить
3. логгирование