[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');
}

分析

  1. 默认先查看配置缓存,存在则直接使用。每次部署前记得清除缓存。
  2. 缓存可以加速启动,配置文件越多越明显
本作品采用《CC 协议》,转载必须注明作者和本文链接
城里的野山参
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
文章
68
粉丝
10
喜欢
29
收藏
41
排名:562
访问:1.4 万
私信
所有博文
社区赞助商