Ereignisse
Ereignisse können benutzerdefinierten Code in einen bestimmten Ausführungspunkt „einschleusen“. vorhandenen Code. Hängen Sie benutzerdefinierten Code an ein Ereignis an und der Code wird automatisch ausgeführt, wenn das Ereignis ausgelöst wird. (Empfohlenes Lernen: yii-Tutorial)
Zum Beispiel kann das messageSent-Ereignis ausgelöst werden, wenn das Mailprogrammobjekt erfolgreich eine Nachricht sendet. Wenn Sie erfolgreich gesendete Nachrichten verfolgen möchten, können Sie den entsprechenden Tracking-Code an das messageSent-Ereignis anhängen.
Yii führt eine Basisklasse namens yiibaseComponent ein, um Ereignisse zu unterstützen. Wenn eine Klasse Ereignisse auslösen muss, sollte sie yiibaseComponent oder seine Unterklassen erben.
Ereignishandler
Ein Ereignishandler ist eine PHP-Rückruffunktion, die ausgeführt wird, wenn das Ereignis, an das sie angehängt ist, ausgelöst wird. Sie können eine der folgenden Rückruffunktionen verwenden:
Globale PHP-Funktion, angegeben in String-Form, z. B. „trim“;
Objektmethode, angegeben in Array-Form aus Objektname und Methodenname, z. B als [$object, $method];
Statische Klassenmethode, angegeben in Array-Form aus Klassennamen und Methodennamen, wie zum Beispiel [$class, $method]; Funktion ($event) { ... }.
Das Format des Event-Handlers ist:function ($event) {
// $event 是 yii\base\Event 或其子类的对象
}
Ereignisname: Ereignisname
Ereignissender: das Objekt, das die Methode trigger() aufruft
Benutzerdefinierte Daten: die Daten, die beim Anhängen des Ereignishandlers übergeben werden, die Standardeinstellung ist leer, danach Die Artikeldetails
Ereignishandler anhängenRufen Sie die Methode yiibaseComponent::on() auf, um den Handler an das Ereignis anzuhängen. Zum Beispiel:
$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) { //事件处理逻辑 });
Das obige ist der detaillierte Inhalt vonWas ist das Ereignis von yii. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!