[laravel源码]Bootstrap\LoadConfiguration.php解析
说明
本章说明框架默认的引导文件之一LoadConfiguration.php
所涉及的流程。
源码
public function bootstrap(Application $app)
{
$items = [];
// 1. 检查config文件是否有缓存
if (file_exists($cached = $app->getCachedConfigPath())) {
$items = require $cached;
$loadedFromCache = true;
}
// 2. 没有缓存则逐个解析文件(config目录下所有配置)
$app->instance('config', $config = new Repository($items));
if (! isset($loadedFromCache)) {
$this->loadConfigurationFiles($app, $config);
}
// 3. 设置app.env的值
$app->detectEnvironment(function () use ($config) {
return $config->get('app.env', 'production');
});
// 4. 配置默认时区
date_default_timezone_set($config->get('app.timezone', 'UTC'));
// 5. 编码格式
mb_internal_encoding('UTF-8');
}
分析
- 默认先查看配置缓存,存在则直接使用。每次部署前记得清除缓存。
- 缓存可以加速启动,配置文件越多越明显
本作品采用《CC 协议》,转载必须注明作者和本文链接