>  기사  >  백엔드 개발  >  PHP Yii Framework_php 팁에서 구성 요소에 바인딩된 동작을 제거하는 방법

PHP Yii Framework_php 팁에서 구성 요소에 바인딩된 동작을 제거하는 방법

WBOY
WBOY원래의
2016-05-16 19:56:231011검색

동작을 제거하려면 동작과 관련된 이름을 사용하여 yiibaseComponent::detachBehavior() 메서드를 호출하면 됩니다.

$component->detachBehavior('myBehavior1');

모든 동작을 제거할 수도 있습니다.

$component->detachBehaviors();

위의 두 메서드는 yiibaseBehavior::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;
  }
}

yiibaseBehavior::attach()와 달리 차단 해제 프로세스는 두 가지 작업을 수행하는 것입니다. 먼저 $owner를 null로 설정하여 이 동작이 어떤 클래스에도 연결되지 않음을 나타냅니다. 두 번째는 Component의 off()를 통해 클래스에 바인딩된 이벤트 핸들러를 해제하는 것입니다. 한마디로 시작이 좋고 끝이 좋다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.