@Sunsh1ne

Как хранить переменную базы данных?

Приветствую.

Пишу REST API для мобильной игры на PHP. Использую паттерн MVC.
Есть класс-обёртка для работы с БД. В классе есть подключение к БД, и я использую этот класс в моделях при работе с данными.
Появилась необходимость сделать запрос в методе роутера. Если заново создавать объект БД и подключаться, то в модели будет создаваться такой же класс и новое подключение. Это плохо. Может создавать объект БД глобально, хранить в объекте статус подключения и при каждом запросе проверять подключение?
Или есть другой приём? Мне кажется, что это какой-то костыль...
  • Вопрос задан
  • 345 просмотров
Пригласить эксперта
Ответы на вопрос 3
@stunoff
если я всё правильно понял, то вам отлично подойдет патерн синглтон для бд
выглядит он примерно так:
static function &getInstance() {
		global $adb, $log;

		if(!isset($adb)) {
			$adb = new self();
		}
		return $adb;
	}
Ответ написан
Комментировать
Так на php без костылей никак. Вроде там можно указать что бы создавалась постоянное соединение. Точнее при срабатывание скрипта будет происходит проверка и если соединение уже есть то будет оно же и использоваться.
Ответ написан
Комментировать
Alyovkin
@Alyovkin
Full-stack developer
Советую посмотреть в строну ORM, например Doctrine, заглянуть под капот Symfony 2 и посмотреть реализацию.
symfony.com/doc/current/book/doctrine.html
www.doctrine-project.org/index.html
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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