Во первых, в современном коде файлы никто не инклюдит - много лет назад для автоматической загрузки классов придумали
https://www.php.net/manual/ru/language.oop5.autolo.... И во всём коде сайта остаётся 2-3 include, один из которых - внутри генрируемого composer'ом автозагрузчика.
Во вторых, все современные фреймворки имеют единственную точку входа: файл index.php, которому передаются все обращения к сайту. В этом файле производятся подключение конфига, и инициализация фреймворка. После чего управление передаётся роутеру, который разбирает URL запроса и передаёт управление нужному классу-контроллеру.
В третьих, для автоматического создания объектов с автоматической же передачей конструктору нужных данных (в том числе и конфигурации) и исключения дублирования создаваемых объектов давным-давно придумали контейнеры внедрения зависимостей (DI)
https://elisdn.ru/blog/116/psr7-framework-container (советую посмотреть все уроки этого цикла).