Что недостатки использования являются классом базы данных PHP как одиночным элементом?

Что недостатки использования являются классом базы данных PHP как одиночным элементом?

12
задан Peter Mortensen 13 March 2014 в 05:47
поделиться

4 ответа

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

Я нашел довольно хорошую статью об этом, а также старый вопрос SO .

1
ответ дан 2 December 2019 в 22:51
поделиться

Если ваш класс БД построен для подключения только к одной базе данных, у вас будут проблемы, если у вас есть сценарий, которому необходимо подключиться к 2 двум отдельным базам данных. Однако вы можете создать одноэлементный класс для приема нескольких конфигураций сервера, а затем управлять ими в одноэлементном классе.

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

1
ответ дан 2 December 2019 в 22:51
поделиться

Недостатки такие же, как и у любого класса, использующего шаблон синглтона:

5
ответ дан 2 December 2019 в 22:51
поделиться

Вы не можете использовать два подключения к базе данных. Вы хотите этого, потому что:

  • у вас есть две базы данных.
  • вы хотите сделать что-то в транзакции, когда другая транзакция уже запущена на "текущем" соединении с базой данных.
  • вы хотите использовать несколько экземпляров макетов баз данных в ваших модульных тестах
1
ответ дан 2 December 2019 в 22:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: