PHP MySQL константа или супер глобальная

Я работаю над проектом PHP/MySQL, для которого требуется доступ к нескольким базам данных. Раньше, когда мне нужно было получить доступ только к одной базе данных, я определял константы для сервера базы данных, имя пользователя, пароль и имя (DB_SERVER, DB_USER и т. д.). Однако теперь, когда мое приложение обращается к нескольким базам данных, я больше не могу просто определять эту информацию с помощью констант.

У меня есть класс базы данных, который обрабатывает открытие и закрытие соединения при каждом запуске скрипта; Функции mysql_connect(DB_SERVER, DB_USER, DB_PASS) и mysql_select_db вызываются из этого класса.

В зависимости от того, к какой базе данных необходимо подключиться приложению, безопасно ли использовать суперглобальные переменные для установки соответствующей информации о подключении? Должен ли я передавать информацию о соединении в качестве аргументов моему классу базы данных? Или я должен полностью переосмыслить это?

Предложения или советы будут оценены!


person bar1024    schedule 12.01.2012    source источник
comment
Я бы действительно пошел с аргументами и внедрением зависимостей для тех классов, которым не нужно выбирать базу данных, просто есть дескриптор.   -  person Wrikken    schedule 13.01.2012


Ответы (1)


Должен ли я передавать информацию о соединении в качестве аргументов моему классу базы данных

да. Класс базы данных должен знать только о базе данных: как подключаться, как запрашивать и т. д. Источники конфигурации и ее создание — не его дело.

person zerkms    schedule 12.01.2012