Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 3
1

Как правильно организовать параметры подключения к БД при использовании ООП?

09.02.2016, 08:20. Показов 631. Ответов 1
Метки нет (Все метки)

Добрый день!

Подскажите, пожалуйста, как правильно организовать параметры подключения к БД при использовании ООП, чтобы при каждом использовании в разных приложениях не редактировать содержимое класса-синглтона ? В обычном скрипте можно было выносить настройки в отдельный файл и выполнять include, а как правильно это сделать при использовании ООП, т.к. все классы приложения используют одни и те же параметры подключения?
Можно создать промежуточный класс между синглтоном и классами «верхнего уровня», в конструктор которого зашить параметры для создания синглтона. Правильно ли это? И опять же при использовании этого приложения как шаблона придётся редактировать непосредственно класс "нижнего" уровня, а хочется сделать что-то вроде отдельного файла с настройками, в которых больше ничего нет, кроме подключения к БД, но как правильно это сделать с т.з. использования ООП, ведь обычно для подключения передаются параметры при создании? Пока я не придумала ничего лучше, использования констант для этой цели:
PHP
1
2
3
4
5
6
class BaseClass 
  public $db=null;
  function __construct($dbName =Const::DB_NAME,  $dbHost=Const::DB_HOST, $dbUser=Const::DB_USER, $dbPass=Const::DB_PASSWORD) {
     $this->db = DB::getInstance($dbName,$dbHost,$dbUser,$dbPassword);
  }
}
Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.02.2016, 08:20
Ответы с готовыми решениями:

Как правильно передать объект в функцию при использовании многопоточности
Добрый день, форум! Возникла вот такая задача: Есть два класса: класс А, реализующий...

Как правильно отрисовывать TextBox при использовании Aero Glass
Научился правильно "рисовать" лейбл -> Но когда на форму с Aero Glass кладу текст-бокс, выходит...

Как правильно организовать цикл при вычислениях
Имеется формула: Условие первой точки: \varepsilon c1:=15*{10}^{-5} \varepsilon c2:=0...

Не пойму в чем ошибка при использовании ООП
Подскажите пожалуйста, почему в этом коде VC++ выдает ошибку: Error: "Friends::Friends(const char*...

__________________

Записывайтесь на профессиональные курсы Fullstack-разработчиков на PHP‌
1
1725 / 1050 / 387
Регистрация: 13.06.2013
Сообщений: 3,572
09.02.2016, 08:52 2
В конструктор класса передавайте уже созданный объект для работы с бд. Соответственно сам объект создается в самом начале работы приложения. Аналогично с другими зависимостями.
Ключевые слова для поиска: Ioc, DI
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.02.2016, 08:52

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Мистический баг при использовании ООП в IAR
Решил попробовать ООП в коде для ATxmega128A1 в IAR и столкнулся с каким-то необъяснимым багом....

Ошибка подключения к БД при использовании SqlConnectionStringBuilder
Помогите, не пойму в чем проблема. При подключении к БД появляется ошибка на строке...

Ошибка подключения к БД при использовании WPF-компонента
Всем привет! Возникла такая проблема: Есть некоторый wpf-компонент, который использует...

Как правильно организовать работу при создании презентации (мультимедийного проекта)?
Всем доброго времени суток) Первоначальная проблема заключается в том, что во флеше я новичок - но...

Как правильно унаследовать TPoint2D от TPoint3D/ Правильно ли наследовать? ООП
Два пользовательских класса: Точка в 2D пространстве и точка в 3D пространстве. class TPoint3D{...

Куда лучше организовать загрузку файлов при использовании docker контейнера
Предположим я создал докер контейнер python3+Django2 и ещё один с какой-нибудь базой данный,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.