Skip to content

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 wie UserLoginEvent 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.