Yii学习第26课:AR的生命周期之实例化

时间:2026-02-15 20:32:42

1、AR(Active Record),中文解释要“活动记录”,“一个 AR 类关联一张数据表,每个 AR 对象对应表中的一行”。

Yii学习第26课:AR的生命周期之实例化

2、以默认首页(@app/controllers/SiteController.php)为例,实例化contactForm类:

$object = new ContactForm();

我们在这里使用的ContactForm 继承的并非是“yii\db\ActiveRecord ”,而是“Model”但是我们还知道“Model 类也是更多高级模型如Active Record 活动记录的基类”,所以使用Model来查看RA的生命周期,效果是一样的。(其实是我有点懒,想用系统默认的代码,所以没有写,但是还是写了这么些文字来解释,呵呵)

Yii学习第26课:AR的生命周期之实例化

3、打开@app/models/ContactForm.php,重构代码:

(1)public function __contruct(){}

(2)public function _init(){}

分别再“构造函数”和“init方法”中输入标记性代码:

Yii学习第26课:AR的生命周期之实例化

4、重新访问默认首页,查看效果会发现实例化的生命周期流程是:

(1)先调用构造函数;

(2)在执行init()方法。

Yii学习第26课:AR的生命周期之实例化

5、我们在追踪基类中“构造函数”的调用过程中,发现该构造函数会执行init()方法。所以假如我们修改__contruct()如下,会得到截然相反的结果:

public function __contruct(){

parent::__contruct();

echo 'step:1';

}

Yii学习第26课:AR的生命周期之实例化

Yii学习第26课:AR的生命周期之实例化

Yii学习第26课:AR的生命周期之实例化

© 2026 一点知道
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com