Events
Das Event-System von CrispyCMS ermöglicht es, gezielt auf bestimmte Vorgänge im System zu reagieren.
Entwickler:innen können damit eigene Logik an zentralen Stellen einhängen, ohne den Kerncode ändern zu müssen.
Grundlagen
-
Events
Ein Event signalisiert, dass im System eine bestimmte Aktion ausgeführt wurde
(z. B. Template erstellt, Benutzer hat sich eingeloggt). -
Listener
Listener sind Klassen oder Methoden, die auf ein bestimmtes Event reagieren.
Sie können zusätzliche Aktionen ausführen, Validierungen anstoßen oder Prozesse abbrechen. -
Propagation
Events können gestoppt werden, sodass keine weiteren Listener ausgeführt werden.
Bei einigen Events (z. B. den Template-Events) kann dies zusätzlich mit einer Fehlermeldung verbunden sein.
Gemeinsame Prinzipien
-
Jedes Event stellt Methoden und Daten zur Verfügung, die für seinen Kontext relevant sind.
Beispiel:TemplateCreatedEvent
enthält Informationen über das betroffene Template und den Nutzer, der es erstellt hat.
Andere Events wieUserLoginEvent
bieten stattdessen Zugang zu Benutzer- und Session-Informationen. -
Stoppen von Events
Bestimmte Events besitzen Methoden, mit denen die Verarbeitung gestoppt werden kann.
In diesem Fall werden: - alle nachfolgenden Listener nicht mehr ausgeführt,
- eine laufende Datenbank-Transaktion zurückgerollt,
- dem Client eine HTTP-Fehlermeldung (meist
400 Bad Request
) zurückgegeben.