首页 > laravel 可以Config::get('app.timezone')读取配置,它是一次性把所有的配置文件都读进来了?

laravel 可以Config::get('app.timezone')读取配置,它是一次性把所有的配置文件都读进来了?

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


其实你即使不使用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 “懒加载” 就要具体情况具体分析了

【热门文章】
【热门文章】