PHP的Yii框架中移除組件所綁定的行為的方法
要移除行為,可以調(diào)用 yii\base\Component::detachBehavior() 方法用行為相關(guān)聯(lián)的名字實(shí)現(xiàn):
$component->detachBehavior('myBehavior1');
也可以移除全部行為:
$component->detachBehaviors();
這上面兩種方法,都會(huì)調(diào)用到 yii\base\Behavior::detach() ,其代碼如下:
public function detach()
{
// 這得是個(gè)名花有主的行為才有解除一說
if ($this->owner) {
// 遍歷行為定義的事件,一一解除
foreach ($this->events() as $event => $handler) {
$this->owner->off($event, is_string($handler) ? [$this,
$handler] : $handler);
}
$this->owner = null;
}
}
與 yii\base\Behavior::attach() 相反,解除的過程就是干兩件事: 一是將 $owner 設(shè)置為 null ,表示這個(gè)行為沒有依附到任何類上。 二是通過Component的 off() 將綁定到類上的事件hanlder解除下來。一句話,善始善終。
相關(guān)文章
CentOS系統(tǒng)中PHP安裝擴(kuò)展的方式匯總
PHP實(shí)現(xiàn)二維數(shù)組按指定的鍵名排序的方法示例
php添加文章時(shí)生成靜態(tài)HTML文章的實(shí)現(xiàn)代碼
PHP獲取表單textarea數(shù)據(jù)中的換行問題

