像afterSave()Yii一样构建一个新函数

时间:2014-03-28 10:29:20

标签: yii yii-extensions yii-components

我正在Yii建造一个购物车。现在我想构建一个名称的函数,在Charged()之后与afterSave()相同。那怎么办呢?提前谢谢

1 个答案:

答案 0 :(得分:3)

正如Michiel所说,你应该在你的方法中使用一个事件

function charge(){ 
    //Perform charge related actions
    $this->onCharge(new CEvent($this));
    //... maybe some code over here after raising the event
}

public function onCharge($event){
    $this->raiseEvent('onCharge', $event);
}

现在你必须抓住引发的事件。所以在这个组件中,你将声明哪个类和哪个类需要捕获它(例如在init方法中)

//OtherClass need to catch the the charge event
$callback = array(new OtherClass,'afterCharge')
$component->onCharge = $callback;

因此,afterCharge执行后,OtherClass的{​​{1}}方法会被调用。

顺便说一句,afterCharge方法必须具有以下签名

charge()

来源: