Какой лучший способ получить доступ к базе данных внутри класса в PHP?

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

Учитывая это, каков наилучший способ доступа к базам данных для класса сеанса или любого класса в этом отношении? Имеет ли смысл создание класса для управления подключениями?

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
1
0
275
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Я бы посоветовал ознакомиться с этой презентацией, в ней, помимо прочего, рассказывается о лучших практиках доступа к базе данных:

http://laurat.blogs.com/talks/best_practices.pdf

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

Да, я использую одноэлементный класс базы данных для всей моей работы с БД.

Philip Morton 30.10.2008 18:17

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

Что, если мне нужно быть подключенным к базе данных A и базе данных B одновременно? Это будет одноэлементная фабрика? Или мне понадобится еще одна обертка вокруг синглтонов?

Chris Kloberdanz 30.10.2008 18:19

Я бы написал еще два класса, которые расширяют синглтон и меняют только учетные данные БД. Синглтон важен, потому что он, по сути, создает глобал, поэтому вам нужно только один раз подключиться к каждой БД.

Lucas Oman 30.10.2008 21:15

Другие вопросы по теме