Yii2 先初始化db组件,进行数据库查询,然后,结果和文件配置合并,再初始化其他的module , compoents等

Yii框架 · Fecmall · 于 4年前 发布 · 1343 次阅读

yii/base/Application 重写构造方法

public function __construct($config = [])
    {
        Yii::$app = $this;
        static::setInstance($this);

        $this->state = self::STATE_BEGIN;

        $this->preInit($config);

        $this->registerErrorHandler($config);
        //foreach ($config as $k=>$v){
        //    echo $k.'<br>';
        //}
        $dbConfig['components']['db'] = $config['components']['db'];
        $dbConfig['id'] = $config['id'];
        unset($config['components']['db']);
        foreach ($this->coreComponents() as $componentName => $v) {
            if (isset($config['components'][$componentName])) {
                $dbConfig['components'][$componentName] = $config['components'][$componentName];
                unset($config['components'][$componentName]);
            }
        }
        
        Component::__construct($dbConfig);
        
        //var_dump(Yii::$app->db);  这里就可以使用db组件了,进行数据库查询,
        // 查出来数据,然后和 $config 进行合并。然后执行其他的配置的初始化
        
        Component::__construct($config);
    }

共收到 0 条回复
没有找到数据。
添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics