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 Benutzer und Gruppen in DokuWiki verwenden
- In Zikula lassen sich mit Hilfe unterschiedlicher Authentifizierungsmethoden Nutzer auf verschiedenen Quellen einbinden und mischen. So kann man sich beispielsweise mit dem OAuth-Modul via Facebook, …
Ein Blick auf die Entwicklungen des News-Moduls
- Das News-Modul von Zikula blickt auf eine lange Historie zurück. Schon als ich vor etwa 20 Jahren das erste mal mit PostNuke in Berührung kam, war dort ein News-Modul an Bord. War die Funktionalität …
Zikula Aktualisierung 2.0.13 mit Sicherheitspatches von Symfony
- Der Zikula Core ist soeben in der Version 2.0.13 erschienen, da eine Reihe von sicherheitsbezogenen Änderungen in Symfony eingeflossen sind. Hier der Link zu den einzelnen Änderungen: Changelog für …
Unterschiedliche Startseiten je Domain oder Einstellung einbinden
- Eine häufige Anforderung besteht darin, die Startseite eines Projektes individuell anzupassen. Zikula bietet zwar die Möglichkeit, eine Controller-Aktion sowie die zu übergebenden Argumente in der …
Spannende Neuerungen im Zikula Core
- In Zikula 3 werden endlich weitere hilfreiche Funktionen von Symfony verwendet. Zikula 2.x hat bereits auf Symfony 3.4.x aufgesetzt, aber aus Rücksicht auf die Abwärtskompatibilität noch nicht alle …