이벤트
이벤트는 사용자 정의 코드를 기존 코드에 "주입"할 수 있는 특정 실행 지점입니다. 이벤트에 사용자 정의 코드를 첨부하면 이벤트가 트리거될 때 코드가 자동으로 실행됩니다. (추천 학습: yii tutorial)
예를 들어, 메일 프로그램 개체가 메시지를 성공적으로 보내면 messageSent 이벤트가 트리거될 수 있습니다. 성공적으로 전송된 메시지를 추적하려면 해당 추적 코드를 messageSent 이벤트에 첨부하면 됩니다.
Yii는 이벤트를 지원하기 위해 yiibaseComponent라는 기본 클래스를 도입합니다. 클래스가 이벤트를 트리거해야 하는 경우 yiibaseComponent 또는 해당 하위 클래스를 상속해야 합니다.
이벤트 핸들러
이벤트 핸들러는 연결된 이벤트가 트리거될 때 실행되는 PHP 콜백 함수입니다. 다음 콜백 함수 중 하나를 사용할 수 있습니다.
'trim'과 같은 문자열 형식으로 지정된 PHP 전역 함수
[$object, $method]와 같은 개체 이름 및 메서드 이름의 배열 형식으로 지정된 개체 메서드; ;
[$class, $method]와 같은 메서드 이름 배열 형식으로 지정된 클래스 이름 및 정적 클래스 메서드
function($event) { ... }과 같은 익명 함수.
이벤트 핸들러의 형식은 다음과 같습니다.
function ($event) { // $event 是 yii\base\Event 或其子类的对象 }
$event 매개변수를 통해 이벤트 핸들러는 이벤트에 대해 다음 정보를 얻습니다.
이벤트 이름: 이벤트 이름
이벤트 보낸 사람: 트리거 호출( ) 메소드 객체
사용자 정의 데이터: 이벤트 핸들러를 연결할 때 전달되는 데이터, 아래에 자세히 설명된 대로 기본값은 비어 있습니다.
이벤트 핸들러 연결
yiibaseComponent::on() 메소드를 호출하여 핸들러를 이벤트. 예:
$foo = new Foo; // 处理器是全局函数 $foo->on(Foo::EVENT_HELLO, 'function_name'); // 处理器是对象方法 $foo->on(Foo::EVENT_HELLO, [$object, 'methodName']); // 处理器是静态类方法 $foo->on(Foo::EVENT_HELLO, ['app\components\Bar', 'methodName']); // 处理器是匿名函数 $foo->on(Foo::EVENT_HELLO, function ($event) { //事件处理逻辑 });
위 내용은 yii의 이벤트는 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!