限时 5折! 详情

yii2源码分析-应用的生命周期之预初始化

3702 0 0

上文我们笼统的介绍了yii\web\Application类及其一系列父类之间的关系,希望各位把握好整体结构。

今天我们从上文尚未细说的 yii\web\Application::run 方法说起。

yii\web\Application类的run方法,实际指的是父类 yii\base\Application::run 方法,是启动整个应用程序的“钥匙”。

执行 yii\base\Application::run 方法之前, yii\base\Application 的构造方法__construct 会先被执行,所以我们很有必要看一下这个构造方法 __construct 。

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

    $this->state = self::STATE_BEGIN;

    $this->preInit($config);

    $this->registerErrorHandler($config);

    Component::__construct($config);
}

以上代码的含义,我们一句一句的分析:

Yii::$app = $this,yii\web\Application 对象被赋值给了 Yii::$app 属性,即 yii\baseYii 类的静态属性 $app,也就是

继续阅读

还有90%的精彩内容,购买继续阅读