Heim  >  Artikel  >  PHP-Framework  >  Der Unterschied zwischen YII-Ereignissen und Verhaltensweisen

Der Unterschied zwischen YII-Ereignissen und Verhaltensweisen

(*-*)浩
(*-*)浩Original
2019-12-04 11:04:213483Durchsuche

Für mich persönlich sind bei Yii Ereignisse und Verhaltensweisen am schwierigsten zu verstehen. Das liegt nicht nur daran, dass ihre Konzepte schwer zu verstehen sind, sondern auch daran, dass ihre Anwendungsszenarien schwer zu verstehen sind. Es ist nicht klar, wann Ereignisse und Verhaltensweisen für die Entwicklung verwendet werden sollten.

Der Unterschied zwischen YII-Ereignissen und Verhaltensweisen

Ereignis

Das Ereignismodell ist das „Beobachtermuster“ im Entwurfsmuster: wenn das Objekt Wenn sich der Zustand ändert, kann dieses Objekt andere Objekte über das Ereignis informieren.

Um das Ereignismodell zu verwenden, müssen Sie diese drei Schritte implementieren:                                                                                                                                                                                             Ereignishandle 3 registrieren. Ereignis auslösen.

Warum müssen wir diese drei Schritte ausführen? Da PHP selbst nicht prozedural ausgeführt wird, löst der Ereignisauslösemechanismus von Yii Ereignisse nicht direkt aus wie ActionScript 3+.

Einige Leute sagen, dass das Ereigniskonzept von Yii dem Ereigniskonzept in js ähnelt, da Yii Ereignisse an den Ausführungsprozess von Yii::app() bindet.

Verhalten

Hier beschreiben wir zunächst noch einmal, warum Verhaltensweisen verwendet werden.

Es gibt zwei Möglichkeiten, Funktionen zu einer Klasse hinzuzufügen:

1. Ändern Sie direkt den Code dieser Klasse und fügen Sie einige Mitgliedsfunktionen und Mitgliedsvariablen hinzu

2. Ableitung und Erweiterung durch Unterklassen. Offensichtlich ist die zweite Methode einfacher zu pflegen und zu erweitern. Wenn jedoch einer Klasse mehrere Funktionen hinzugefügt werden müssen (mehrere Personen zu unterschiedlichen Zeiten), ist eine Ableitung auf mehreren Ebenen erforderlich, was offensichtlich die Wartungskosten erhöht.

In Yii fügt die Komponente durch Verhaltensklassenbindung Mitgliedsmethoden und Mitgliedsvariablen einer oder mehrerer CBehavior-Klassen zu sich selbst hinzu und entlädt bestimmte CBehavior-Klassen, wenn sie nicht benötigt werden.

Gleichzeitig können Sie die CBeavior::events-Methode überschreiben, um mehrere Ereignisbindungen an die Zielklasse zu erreichen. Diese Ereignisse werden miteinander verbunden, wenn das aktuelle Verhalten an die Zielklasse gebunden ist.

Zusammenfassung der Yii2-Ereignisse und -Verhalten

1) Ereignisse werden verwendet, um die Ausführung eines voreingestellten Codeabschnitts zu einem bestimmten Zeitpunkt auszulösen, den Sie verwenden müssen die Ereignisklasse, alle von yiibaseComponent geerbt.

2) Verhalten wird zur Ergänzung der Klasse verwendet. Durch die Bindung des Verhaltens an eine Klasse kann die Klasse über die durch das Verhalten selbst definierten Eigenschaften und Methoden verfügen. Und es ist nicht erforderlich, eine neue Klasse zu schreiben, um vorhandene Klassen zu erben oder einzubeziehen.

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen YII-Ereignissen und Verhaltensweisen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn