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

2025-10-24 06:04:25

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的生命周期之实例化

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢