Allgemeine und eigene Symfony-Events in generierten Zikula-Modulen

in  Zikula Apps , , , ,

Allgemeine und eigene Symfony-Events in generierten Zikula-Modulen

In ModuleStudio 0.6.2 liegt der Fokus auf die Anpassung des Generators auf Symfony und Bootstrap, was die Zielversion Zikula 1.4.0 anbelangt.

Einige Neuerungen betreffen das Zusammenspiel mehrerer Module, die miteinander interagieren. Erstens werden nun Factory-Klassen für Entitäten und Repositories in Verbindung mit Service-Parametern eingesetzt, mit denen man die Entität eines Moduls X von einem Modul Y heraus erweitern und anpassen kann. Zweitens werden in den Doctrine Lifecycle-Events der Entitäten eigene Symfony-Events verwendet, mit denen sich ein anderes Modul einhaken kann.

Moduleigene Events

Hat man beispielsweise eine Entität person im Modul People, so werden die Definitionen der korrespondierenden Events in die Datei Event/FilterPersonEvent.php generiert. Hier gibt es dann für die unterschiedlichen Events Konstanten wie etwa PERSON_PRE_REMOVE, PERSON_POST_UPDATE und so weiter.

Ein anderes Modul kann via Event Listener oder Event Subscriber auf diese Events reagieren und so eigene Aktionen an den Ereignissen im People-Modul ausrichten. Mehr dazu in der offiziellen Symfony-Dokumentation.

Allgemeine Events

Generierte Module bringen auch mehrere Event Subscriber für allgemeine Events von Symfony und Zikula mit, die als Beispiel zur Eingewöhnung verwendet werden können. Es lohnt sich auf jeden Fall, sich als Modulentwickler mit dem Event-System auseinander zu setzen, da es eine große Menge möglicher Anwendungen bietet. Hier ein paar Beispiele:

  • In die Registrierung oder das Login von Nutzern einhaken.
  • Andere Controller oder API-Funktionen abfangen und erweitern.
  • Ein zentrales Logging installieren.
  • Einen zentralen Wartungsmodus einbauen.
  • Auf das Löschen von Benutzerkonten reagieren.
  • Veränderungen von anderen Modulen (Installieren, Aktualisieren, Aktivieren, Deaktivieren, Deinstallieren, Hinzufügen neuer Hook-Areas, usw.) mitbekommen.
  • Auf Veränderungen von Benutzergruppen (Anlegen, Löschen, Hinzufügen und Entfernen von Benutzern) reagieren.
  • Templates vor der Auslieferung abfangen und verändern.

Events anderer Module

Auch andere Module nutzen bereits seit Längerem eigene Events, für die in ModuleStudio-basierten Modulen ebenfalls Event Subscriber erzeugt werden. Hierzu zählen Content (zur Registrierung eigener Content Types) und Scribite (zur Registrierung von Editor-Plugins). Ein weiterer Event Subscriber bedient ein Event für wartende Inhalte, die auf eine Freigabe warten: dies betrifft Modelle, in denen für mindestens eine Entität ein entsprechender Workflow eingestellt wird.

Weitere Beiträge in Kategorie Zikula Apps

Zikula Framework in Version 3 veröffentlicht
- Heute haben wir das finale Release von Zikula Core 3.0.0 veröffentlicht. Es basiert auf Symfony 5.1 sowie Twig 3 und verwendet unter anderem Bootstrap 4 und Font Awesome 5. Einen grundlegenden …
Zikula 3 erscheint als Release Candidate
- Heute wurde der erste Release Candidate für Zikula Core 3.0.0 veröffentlicht. Einen grundlegenden Überblick über die wichtigsten Änderungen sowie die weiterführenden Links zur Dokumentation und zu den …
Zikula Core Dokumentation in neuem Gewand
- Schon seit einiger Zeit werden im GitHub-Repository des Zikula Core die Dinge dokumentiert, die zusätzlich zu den Handbüchern von Symfony, Doctrine, Twig, Bootstrap usw. zu beachten sind. Nun wurde …
Weitere neue Features in Zikula Core 3
- Nachdem wir bereits in einigen Artikeln zu Zikula 3 die Änderungen unter der Haube, umfangreiche Modernisierungen, Möglichkeiten für dynamische Formulare und Neuerungen rund um Übersetzungen …
Zikula 3 bringt zahlreiche Neuerungen rund um Übersetzungen
- Nachdem zwischen den Jahren der komplette Unterbau von Zikula 3 auf Stand gebracht worden ist, hat sich der nächste Sprint dem Übersetzungssystem gewidmet. In diesem Beitrag wird kurz dargestellt, …