Пишу REST API для мобильной игры на PHP. Использую паттерн MVC.
Есть класс-обёртка для работы с БД. В классе есть подключение к БД, и я использую этот класс в моделях при работе с данными.
Появилась необходимость сделать запрос в методе роутера. Если заново создавать объект БД и подключаться, то в модели будет создаваться такой же класс и новое подключение. Это плохо. Может создавать объект БД глобально, хранить в объекте статус подключения и при каждом запросе проверять подключение?
Или есть другой приём? Мне кажется, что это какой-то костыль...
Пояснение.
У меня такой алгоритм(если опускать подробности):
- обрабатывается uri
- инклудится контроллер, если есть такой роут
- проверка access token, если роут не из списка, где токен не обязателен
- если токен прошёл проверку (JWT, если быть точнее), то нужно проверить, не забанен ли пользователь в БД(вот тут нужно делать запрос в БД)
- теперь уже создается объект контроллера и вызываетя экшн
- к экшену подключается модель и там тоже есть работа с БД
Так на php без костылей никак. Вроде там можно указать что бы создавалась постоянное соединение. Точнее при срабатывание скрипта будет происходит проверка и если соединение уже есть то будет оно же и использоваться.