개인적으로 Yii에서 가장 이해하기 어려운 것은 이벤트와 행동입니다. 이는 개념을 이해하기 어려울 뿐만 아니라 개발에 이벤트와 동작을 언제 사용해야 하는지 명확하지 않기 때문입니다.
Events
이벤트 모델은 디자인 패턴의 "관찰자 패턴"입니다. 객체의 상태가 변경되면 이 객체는 다른 객체에 이벤트를 알릴 수 있습니다.
이벤트 모델을 사용하려면 다음 세 단계를 구현해야 합니다. (권장 학습: yii 프레임워크 )
1. 이벤트 정의 2. 이벤트 핸들러 등록;
이 세 단계를 수행해야 하는 이유는 무엇인가요? PHP 자체는 절차적인 방식으로 실행되지 않기 때문에 Yii의 이벤트 트리거 메커니즘은 ActionScript 3+처럼 이벤트를 직접 트리거하지 않습니다.
어떤 사람들은 Yii의 이벤트 개념이 js의 이벤트 개념과 유사하다고 말합니다. 왜냐하면 Yii는 이벤트를 Yii::app()의 실행 프로세스에 바인딩하기 때문입니다.
Behavior여기서 먼저 동작이 사용되는 이유를 다시 설명합니다.
클래스에 기능을 추가하는 방법에는 두 가지가 있습니다.1. 이 클래스의 코드를 직접 수정하고 일부 멤버 함수와 멤버 변수를 추가합니다.
2.
분명히 두 번째 방법이 유지 관리 및 확장이 더 쉽습니다. 그러나 여러 기능을 클래스에 추가해야 하는 경우(서로 다른 시간에 여러 사람) 다중 수준 파생이 필요하며 이는 유지 관리 비용을 분명히 증가시킵니다.
Yii에서는 동작 클래스 바인딩을 통해 구성 요소가 하나 이상의 CBehavior 클래스의 멤버 메서드와 멤버 변수를 자체에 추가하고 필요하지 않을 때 특정 CBehavior 클래스를 언로드합니다.
동시에 CBeavior::events 메서드를 재정의하여 대상 클래스에 대한 여러 이벤트 바인딩을 달성할 수 있습니다. 이러한 이벤트는 현재 동작이 대상 클래스에 바인딩될 때 함께 바인딩됩니다.
Yii2 이벤트 및 동작 요약1) 이벤트는 특정 시점에 미리 설정된 코드 조각의 실행을 트리거하는 데 사용됩니다. 이벤트를 사용해야 하는 클래스는 모두 yiibaseComponent에서 상속됩니다.
2) 동작은 클래스를 보완하는 데 사용됩니다. 동작을 클래스에 바인딩하면 클래스 자체에 이러한 속성과 메서드가 있는 것처럼 클래스도 동작 자체에 의해 정의된 속성과 메서드를 가질 수 있습니다.
그리고 기존 클래스를 상속하거나 포함하기 위해 새 클래스를 작성할 필요가 없습니다.
위 내용은 yii 이벤트와 동작의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!