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

Kommende Neuerungen in Symfony 6.4
- Die Veröffentlichung der nächsten Symfony-Version 6.4 steht bevor. Wie immer gibt es regelmäßige Einblicke in die wichtigsten, zu erwartenden Features und Verbesserungen. Dieser Beitrag zeigt im …
Symfony vereinfacht zeitgesteuerte Aktionen mit neuer Scheduler-Komponente
- Mit Symfony 6.3 sind wieder allerhand neue Features hinzugekommen. In diesem Beitrag möchte ich kurz die neue Komponente Scheduler vorstellen, mit welcher der Symfony Messenger um zeitgesteuerte …
SSO mit Keycloak und Symfony
- Mit der Java-basierten Software Keycloak wird die Verwaltung und Authentifizierung von Nutzern zentral gelöst. Hierbei bleiben kaum Wünsche offen: egal ob nun ein Registrierungsprozess, die …
Symfony UX Translator bietet Mehrsprachigkeit in JavaScript
- Bereits seit einigen Jahren gibt es das BazingaJsTranslationBundle, welches es erlaubt, den Symfony Translator auch Client-seitig zu verwenden. Auch in Zikula kommt dieses Bundle zum Einsatz, …
Kommende Neuerungen in Symfony 6.3
- Die Veröffentlichung der nächsten Symfony-Version 6.3 ist für Ende Mai 2023 geplant. Wie immer gibt es regelmäßige Einblicke in die wichtigsten, zu erwartenden Features und Verbesserungen. Dieser …