так это не работает к счастью/сожалению. Когда Вы заходите на страницу, то загружается index.php он делает все основные манипуляции для запуска ядра ларавель. То есть подгружает библиотеки (autoload), читает конфиги, формирует провайдеры и фасады из этих конфигов. формирует маршруты, консольные команды регистрирует и так далее и после собранные данные собираются в app
.
получить который вы можете например так: app()
. Там будет всё что касается вашего приложения на момент обращения к странице.
Далее выполняется ваш запрос. И это работает каждый релоад браузера. Так как после перезагрузки страницы память очищается и всё что было загружено удаляется из памяти сборщиком. Поэтому за этим не следим при разработке.
В процессе Runtime всё это не будет создаваться постоянно, а браться уже из существующих. Или использоваться singleton объекты, если где-то вызывается создание объекта который зарегистрирован как singleton.
Что касается Вашего вопроса. Для того чтобы чтение некоторых частей систем было быстрее в несколько раз. Например при получении конфигов есть config:cache
и route:cache
команда. В результате пусть у вас хоть 100 файлов конфигов будет создано, если они в кеше чтение их будет моментальное и что-то читать в определённый момент не имеет смысла. В качестве кеша можно использовать Redis например.
Если Вам принципиально именно такое поведение.
Можете сделать ваши конфиги в бд в таблице settings.
и свой хелпер db_config('other.name')
где он будет обращаться к вашему сервису
SettingService, а он в свою очередь по требованию будет делать селект из бд и добавлять в массив $settings
и если уже есть в массиве, то повторно не грузит. А конфиги ядра которые загружаются всегда(для каких-либо сервисов и библиотек) оставить как есть. В результаты вы можете ваши конфиге в админке редактировать их динамически
Пример
db_config('other.name') // вернет из вашей бд
db_config('database.connections') // вернёт конфиг из файловой системы (проверит массив, потом в бд и вызовет дефолтную функцию config('database.connections')