二十四、逐行阅读Yii2.0.43源码_Yii框架文件yii\base\Application.php(2)

目录

一、构造函数

二、preInit方法,检查和初始化应用程序配置

 三、init方法,可以实现对象的一些初始化工作

 四、bootstrap方法,启动方法


 

一、构造函数

1. 挂载app实例
2. 状态初始化
3. 预初始化
4. 注册错误处理程序
5. 调用父类的构造函数 

    /**
     * 构造函数
     * 1. 挂载app实例
     * 2. 状态初始化
     * 3. 预初始化
     * 4. 注册错误处理程序
     * 5. 调用父类的构造函数
     */
    public function __construct($config = [])
    {
        //挂载app实例
        Yii::$app = $this;

        static::setInstance($this);

        //状态初始化
        $this->state = self::STATE_BEGIN;

        //预初始化
        $this->preInit($config);

        //注册错误处理程序
        $this->registerErrorHandler($config);

        Component::__construct($config);
    }

二、preInit方法,检查和初始化应用程序配置

1. 检查应用程序id
2. 检查并设置basePath,设置@app别名
3. 设置@vendor别名
4. 设置@runtime别名
5. 时区设置
6. 设置容器属性
7. 合并核心组件与自定义组件

    /**
     * 检查和初始化应用程序配置
     * 1. 检查应用程序id
     * 2. 检查并设置basePath,设置@app别名
     * 3. 设置@vendor别名
     * 4. 设置@runtime别名
     * 5. 时区设置
     * 6. 设置容器属性
     * 7. 合并核心组件与自定义组件
     */
    public function preInit(&$config)
    {
        //检查应用程序id
        if (!isset($config['id'])) {
            throw new InvalidConfigException('The "id" configuration for the Application is required.');
        }

        //检查并设置basePath
        if (isset($config['basePath'])) {

            //设置@app别名
            $this->setBasePath($config['basePath']);
            unset($config['basePath']);
        } else {
            throw new InvalidConfigException('The "basePath" configuration for the Application is required.');
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值