1. https://www.cnblogs.com/yhl664123701/p/5532135.html
  2. public function __construct($config = [])   // base\application.php文件中的方法
        {
            Yii::$app = $this;  //yii::$app 就代表web/application对象
            static::setInstance($this);  // 把web/application对象注册到loadedModules中, 这个目的是什么还不清楚
    
            $this->state = self::STATE_BEGIN; //设置当前状态
    
            $this->preInit($config);  // 预初始化, 设置了basePath,vendorPath,runtimePath,时区,container(di)可选,判断config里是否有核心组件,没有就注册进去
    
            $this->registerErrorHandler($config);  // 错误处理器的初始化或者说注册,反正必须要有错误处理器,否则终止程序。(当应用程序出现错误时用的,对错误进行捕获,抛出错误页面之类的,大概这样)
    
            Component::__construct($config);   // 给对象配置属性值(属性键值对是config传过去的),对象就是web/application吧?。(PHP的对象是可以动态设置属性的!)init()方法设置控制器的命名空间
        }