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

Monitoring von Queues mit dem Symfony Messenger
- Der Symfony Messenger kann über unterschiedliche Transporte mit diversen Queue-Technologien eingesetzt werden, zum Beispiel AMQP, Redis, Amazon SQS oder Doctrine. Um die Messages in den Queues …
MultiPart-Requests in Symfony einfach verarbeiten
- In Symfony gibt es mit der Mime-Komponente eine komfortable Möglichkeit, MultiPart-Nachrichten zu erstellen. Nicht out of the box enthalten ist aber ein Interface, das den Zugriff auf die in …
Kommende Neuerungen in Symfony 6.1
- Gegenwärtig laufen die Arbeiten an der nächsten Symfony-Version 6.1. Wie immer gibt es regelmäßige Einblicke in die wichtigsten, zu erwartenden Features und Verbesserungen. Dieser Beitrag zeigt im …
Zikula 3 - Cross-Release und weitere Ausrichtung
- Heute sind gleichzeitig zwei neue Versionen vom Zikula Core veröffentlicht worden. Zikula 3.0.4 bringt Fehlerkorrekturen Mit der Version 3.0.4 wird ein weiteres Bugfix-Update für die Hauptversion 3 …
Kommende Neuerungen in Symfony 5.4
- Vor einigen Tagen wurde Symfony 5.4.0-BETA3 veröffentlicht. Dies nehme ich zum Anlass, um einmal einen Überblick über die wichtigsten neuen Funktionen zu geben, auf die wir uns im Rahmen dieses …