Единственный вариант, который мне известен, это через внедрение зависимостей.
Но я не представляю в какой части приложения это делают. Нужно создать подключение к БД в front-controller и поместить в DI-контейнер, и в дальнейшем использовать ? Или как ?
почитай что-нибудь нормальное про di.
контейнер создается при старте приложения,
в нем создаешь экземпляр подключения к бд:
$container->set('db', function () use ($container) {
return new DbConnection($container->get('config')['db']);
});
потом подключение передаешь в те сервисы, где оно нужно:
$container->set('MyService', function () use ($container) {
return new MyService($container->get('db'));
});
как пример где это происходит:
www.slimframework.com/docs/v4/concepts/di.html