Суть:
Сделать фабрику соединений в БД: cot\DВ::getConnection($connection = 'default')
где $connection = "имя" соединения. Метод создает экземпляр CotDB и сохраняет ссылку на него и ее и возвращет. При каждом последующем вызове он возвращает ранее сохраненную ссылку.
В класс Cot добавить метод Cot::db($connection = 'default') - фасад
все обращения к БД должны осуществляться через Cot::db(), например Cot::db()->query(....);
Поддержку Cot::$db и глобальной переменной $db оставить для обратной совместимости и объявить deprecated.
Они должны инициализироваться только при включенном $cfg['legacyMode'] = true
Профит:
соединение с БД происходит только при первом вызове Cot::db(). Если для обработки запроса обращение к БД не нужно, соединение не устанавливается.
[RU]
Суть:
Сделать фабрику соединений в БД:
cot\DВ::getConnection($connection = 'default')
где $connection = "имя" соединения. Метод создает экземплярCotDB
и сохраняет ссылку на него и ее и возвращет. При каждом последующем вызове он возвращает ранее сохраненную ссылку.Конфиг должен быть таким:
В класс
Cot
добавить методCot::db($connection = 'default')
- фасадвсе обращения к БД должны осуществляться через
Cot::db()
, напримерCot::db()->query(....)
;Поддержку
Cot::$db
и глобальной переменной$db
оставить для обратной совместимости и объявить deprecated. Они должны инициализироваться только при включенном$cfg['legacyMode'] = true
Профит:
Cot::db()
. Если для обработки запроса обращение к БД не нужно, соединение не устанавливается.