Home  >  Article  >  Backend Development  >  How to remove the behavior bound to a component using the Yii framework

How to remove the behavior bound to a component using the Yii framework

不言
不言Original
2018-06-15 14:08:442046browse

This article mainly introduces the method of removing the behavior bound to the component in PHP's Yii framework. You can use the detachBehavio method or remove all behaviors. Friends in need can refer to the following

To remove Behavior can be implemented by calling the yii\base\Component::detachBehavior() method with the name associated with the behavior:

$component->detachBehavior('myBehavior1');

You can also remove all behaviors:

$component->detachBehaviors();

The above two methods will call yii\base\Behavior::detach(), the code is as follows:

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;
  }
}

Contrary to yii\base\Behavior::attach(), the process of unblocking is to do two things: First, set $owner to null, indicating that this behavior is not attached to any class superior. The second is to release the event handler bound to the class through Component's off(). In a word, start well and end well.

The above is the entire content of this article. I hope it will be helpful to everyone’s study. For more related content, please pay attention to the PHP Chinese website!

Related recommendations:

How to use url component to beautify management in YII

##How to count the number of different types of mailboxes through Yii

The above is the detailed content of How to remove the behavior bound to a component using the Yii framework. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn