php - laravel 可以Config::get('app.timezone')读取配置,它是一次性把所有的配置文件都读进来了?
ringa_lee
ringa_lee 2017-04-11 10:09:26
[PHP讨论组]

它是一次性把所有的配置文件都读进来了,这样效率似乎低了一点

ringa_lee
ringa_lee

ringa_lee

全部回复(2)
迷茫

其实你即使不使用Config::get()来读取配置,laravel在入口文件的

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);

中就已经读取了所有的配置信息并保存在Illuminate\Config\Repository的items数组里面了

所以这是属于框架的加载开销,并不是Config::get的开销

阿神

LS说的很对。

默认情况下全部加载肯定会耗那么一点点时间。不过laravel提供了artisan config:cache可以对配置文件进行合并然后缓存,加载的开销就几乎为0了。

如果你的配置项目比较多,不想一次性加载进来,则可以考虑参考lumen里面的\Laravel\Lumen\Application::configure实现,通过懒加载的方式来进行优化。

具体到“缓存全部” vs “懒加载” 就要具体情况具体分析了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号