Symfony-Workflows in Zikula nutzen

in  Zikula Apps , , , ,

Symfony-Workflows in Zikula nutzen

Ab der Core-Version 1.5 steht in Zikula die Workflow-Komponente von Symfony zur Verfügung. Dieser Beitrag zeigt einige Vorteile und erweiterte Funktionen in der Zikula-Integration auf.

Ein zentraler Vorteil des neuen Workflow-Systems liegt darin, dass ein einfaches Entity-Feld zur Speicherung des aktuellen Zustands ausreicht. Im Gegensatz zum alten System sind keine zusätzlichen Datensätze in einer Workflow-Tabelle mehr notwendig, die hinzugeladen und mit den Entitäten synchron gehalten werden müssen. Dies vereinfacht die Handhabung enorm, insbesondere wenn es um den Import von Daten geht.

Der zweite sehr schöne Aspekt ist, dass die neuen Workflows mit Events arbeiten (Dokumentation). Dies erlaubt das Injizieren beliebiger Funktionen in die Prozesse und Zustandsänderungen. Beispielsweise können hier Zugriffsrechte geprüft und bestimmte Transitionen bei Bedarf verhindert bzw. ausgeblendet werden.

Per Standard müssen in Symfony alle Workflows zentral unter /app/config/ gespeichert werden. In Zikula haben wir das etwas flexibilisiert, so dass es nun mehrere Orte gibt, an denen YAML- oder XML-Dateien zur Beschreibung von Workflows hinterlegt werden können:

  • In /lib/Zikula/Bundle/WorkflowBundle/Resources/workflows/ liegen zentrale Workflow, die im Core verwendet werden.
  • Module können eigene Workflows unter /modules/Acme/ExampleModule/Resources/workflows/ speichern.
  • Außerdem können angepasste oder projektspezifische Workflows in /app/Resources/workflows/ abgelegt werden.

Des Weiteren haben wir in Zikula einen graphischen Editor zum Bearbeiten von Workflows eingebaut. Der obige Screenshot zeigt, wie dieser Editor aussieht. Beispiele dafür finden sich in mittels ModuleStudio für Zikula 1.5+ generierten Modulen: diese verfügen auf den Konfigurationsseiten für zentrale Einstellungen über einen Reiter namens “Workflows”, unter dem der Editor für die generierten Workflows verlinkt wird.

Weitere Beiträge in Kategorie Zikula Apps

Symfony 6.2.7 korrigiert CSRF-Problem im SecurityBundle
- Am ersten Februar, also vor genau einem Monat, wurden mit Symfony 6.2.6 zwei Sicherheitsprobleme adressiert. Ein Patch im SecurityBundle hatte allerdings auch valide Use Cases gebrochen, wie zum …
Flexible Tabellenspalten im EasyAdminBundle
- Vor kurzer Zeit haben wir das EasyAdminBundle (EAB) in die Entwicklungsversion von Zikula 4 integriert um das alte Admin-Interface abzulösen. Seitdem beobachten wir natürlich stets, was sich bei …
Kommende Neuerungen in Symfony 6.2
- Gegenwärtig laufen die Arbeiten an der nächsten Symfony-Version 6.2. Wie immer gibt es regelmäßige Einblicke in die wichtigsten, zu erwartenden Features und Verbesserungen. Dieser Beitrag zeigt im …
Zikula 4 - Ansätze für ein leichtgewichtigeres User Management
- Im Rahmen der Schlankheitskur vom Zikula Core sind einige Altlasten bereits entfernt worden. Das Admin-Interface baut nun auf dem EasyAdminBundle auf. Ein größerer Knoten, den es noch zu entwirren …
Zikula 4 und ModuleStudio - Weitere Integration mit dem EasyAdminBundle
- Im letzten Beitrag wurde unter anderem dargestellt, dass Zikula 4 nun das EasyAdminBundle (EAB) integriert um das alte Admin-Interface abzulösen. Zwischenzeitlich sind die Arbeiten daran etwas …