程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP的Yii框架中移除組件所綁定的行為的方法

PHP的Yii框架中移除組件所綁定的行為的方法

編輯:PHP綜合

要移除行為,可以調用 yii\base\Component::detachBehavior() 方法用行為相關聯的名字實現:

$component->detachBehavior('myBehavior1');

也可以移除全部行為:

$component->detachBehaviors();

這上面兩種方法,都會調用到 yii\base\Behavior::detach() ,其代碼如下:

public function detach()
{
  // 這得是個名花有主的行為才有解除一說
  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 設置為 null ,表示這個行為沒有依附到任何類上。 二是通過Component的 off() 將綁定到類上的事件hanlder解除下來。一句話,善始善終。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved