在yii\base\Application
的构造函数中:
yii\base\Application
我不明白为什么public function __construct($config = [])
{
Yii::$app = $this;
static::setInstance($this);
$this->state = self::STATE_BEGIN;
$this->preInit($config);
$this->registerErrorHandler($config);
Component::__construct($config); // <====== this line confused me
}
放在构造函数的末尾。
在Component::__construct($config)
中,Yii建议:
当从yii \ base \ Component或yii \ base \ Object扩展类时,建议您遵循以下约定:
- 如果重写了构造函数,则>>,将$ config参数指定为构造函数的最后一个参数,然后将此参数传递给父构造函数。
- 总是在覆盖的构造函数的末尾调用父构造函数。
- 如果覆盖yii \ base \ Object :: init()方法,请确保在init()方法的开头调用init()的父实现。
在阅读了上面的前两个约定之后,我认为在Component concept section of Yii2 Guide的构造函数的末尾将出现一行,例如:
yii\base\Application
但最后一行是:
parent::__construct($config);
有人能解释以上内容吗?谢谢。
在yii \ base \ Application的构造函数中:公共函数__construct($ config = []){Yii :: $ app = $ this; static :: setInstance($ this); $ this-> state = self :: STATE_BEGIN; $ this-> ...
我正在学习Yii2。阅读文档和框架代码。在这一刻,我也迷失了方向。幸运的是我解决了这个难题。