@bitande
PHP

Как правильно использовать синглтон Бд?

Подскажите как правильно сделать.
Пытаюсь сделать простейшую cms по mvc паттерну.
Хочу создать объект базы данных всего один раз. Класс Db - это синглтон.

Можно ли так сделать?

$db = Db::getInstance();

Объект Db создается всего один раз, затем в контроллерах используется его статические методы, например:

$data= Db::getOne(1);

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

Вопрос в том, где создать объект класса Db? Во фронт контроллере, в самом главном контроллере, от которого будут наследоваться остальные или еще где-то?
  • Вопрос задан
  • 735 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега PHP
frontend developer
Db::getInstance()->getOne(1)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@dev400
правильно использовать инверсию зависимостей и передать готовый объект класса соединения в нужную модель. Синглтон это антипаттерн, зачем он вообще тут?
Ответ написан
Комментировать
@firm
> Вопрос в том, где создать объект класса Db?
Реализация подключения к базе данных никакого отношения к контролером не имеет.
Класс Db - это системный класс вашего фреймворка.
Вопрос где размещать его, это ваши предпочтения, на мой взгляд было бы логично разместить его, например, в папке systems. Все зависит от того как вы спроектировали логическую структура вашего фреймворка.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 11:20
5000 руб./за проект
01 мая 2024, в 10:55
3000 руб./за проект