PHP의 Yii Framework_php 팁에서 동작을 사용하는 방법에 대한 자세한 설명

WBOY
풀어 주다: 2016-05-16 19:56:26
원래의
998명이 탐색했습니다.

동작과 결합된 클래스는 다음과 같습니다.

// Step 1: 定义一个将绑定行为的类
class MyClass extends yii\base\Component
{
  // 空的
}

// Step 2: 定义一个行为类,他将绑定到MyClass上
class MyBehavior extends yii\base\Behavior
{
  // 行为的一个属性
  public $property1 = 'This is property in MyBehavior.';

  // 行为的一个方法
  public function method1()
  {
    return 'Method in MyBehavior is called.';
  }
}

$myClass = new MyClass();
$myBehavior = new MyBehavior();

// Step 3: 将行为绑定到类上
$myClass->attachBehavior('myBehavior', $myBehavior);

// Step 4: 访问行为中的属性和方法,就和访问类自身的属性和方法一样
echo $myClass->property1;
echo $myClass->method1();

로그인 후 복사

위 코드를 모두 이해할 필요는 없지만 발가락으로 이 코드의 의미를 짐작했을 수도 있지만 여기서는 바인딩된 클래스에서 동작의 속성과 메서드에 액세스할 수 있다는 점만 기억하면 됩니다. 속성과 메서드에 직접 액세스하는 것은 괜찮습니다. 코드에서 $myClass에는 property1 method() 멤버가 없습니다. 이 두 사람은 $myBehavior의 구성원입니다. 그러나 AttachBehavior()를 통해 동작을 개체에 바인딩한 후 $myCalss는 별을 끌어당기고 에너지를 변환하여 엄청난 부를 보여주고 다른 사람의 속성과 방법을 자신의 것으로 바꾸는 마법을 마스터한 것 같습니다.

또한 위 코드에서 해당 동작을 사용하는 일반적인 프로세스도 이해해야 합니다.

  • 동작을 사용하려면 yiibaseComponent에서 자신만의 클래스를 파생하세요.
  • 동작과 관련된 속성과 메서드를 정의하는 yiibaseBehavior에서 고유한 동작 클래스를 파생합니다.
  • 구성요소 및 동작 바인딩
  • 구성 요소 자체의 속성과 메서드를 사용하는 것처럼 동작에 정의된 속성과 메서드를 자유롭게 사용하세요.

비헤이비어를 사용하려면 먼저 앞서 설명한 대로 yiibaseComponent 클래스 또는 해당 하위 클래스에 연결해야 합니다. 동작이 구성 요소에 연결되면 이를 직접 사용할 수 있습니다.

동작이 구성 요소에 연결된 후에는 구성 요소를 통해 getter 및 setter 메서드로 정의된 동작의 공용 멤버 변수 또는 속성에 액세스할 수 있습니다.

// "prop1" 是定义在行为类的属性
echo $component->prop1;
$component->prop1 = $value;
类似地也可以调用行为的公共方法:

// foo() 是定义在行为类的公共方法
$component->foo();

로그인 후 복사

보시다시피 $comComponent는 prop1과 foo()를 정의하지 않더라도 마치 컴포넌트 자체에서 정의한 것처럼 사용됩니다.

두 개의 동작이 동일한 속성 또는 메서드를 정의하고 둘 다 동일한 구성 요소에 연결된 경우 속성 또는 메서드에 액세스할 때 먼저 연결된 동작이 우선순위를 가집니다.

구성 요소에 동작을 연결할 때 명명된 동작입니다. 아래와 같이 이 이름을 사용하여 동작 개체에 액세스할 수 있습니다.

$behavior = $component->getBehavior('myBehavior');
로그인 후 복사

또한 이 구성요소에 연결된 모든 동작을 얻을 수도 있습니다.

$behaviors = $component->getBehaviors();
로그인 후 복사

행동 제거

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

$component->detachBehavior('myBehavior1');
로그인 후 복사

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

$component->detachBehaviors();
로그인 후 복사

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!