Zikula 4 - Weiteres Ausmisten im Gange

in  Zikula Apps , ,

Zikula 4 - Weiteres Ausmisten im Gange

Getreu dem Motto Wer loslässt, hat die Hände frei wird der Zikula Core gegenwärtig ausgemistet: das Ziel ist es, wieder ein schlankes System zu schaffen, welches nicht jede Funktionalität selbst anbieten möchte, sondern sich hierfür noch mehr dem Symfony Ökosystem öffnet. Seit dem letzten Beitrag wurde weiter Ballast abgeworfen - die Änderungen aus den letzten zwei Wochen werden im Folgenden dargestellt.

  • Das OAuthBundle ist entfernt worden; das ist ein Vorgeschmack darauf, dass Zikula keine eigene Methodik zur Authentifizierung anbieten, sondern sich mehr an das Security-System von Symfony halten sollte. Für selbiges gibt es Dutzende von Bundles, welche diverse Möglichkeiten zur Authentifizierung zur Verfügung stellen.
  • Das WorkflowBundle ist ebenfalls rausgeflogen; die verbleibende Funktionalität, die es erlaubt, dass Workflow-Definitionen an unterschiedlichen Orten, zum Beispiel direkt in einem Bundle, liegen können, wurde beibehalten und in das CoreBundle verschoben.
  • Das eigene Extension-System ist nun entfernt worden: Bundles werden nun ausschließlich über Composer und Flex verwaltet. Eine Besonderheit: als Relikt der früheren Installer gibt es im CoreBundle ein InitializableBundleInterface: mit einem Konsolen-Kommando zikula:init-bundle können so Tasks ausgeführt werden, die nach der Einrichtung eines Bundles mit Flex noch zu tun sind. Hierzu zählt etwa das Einspielen von ersten Daten oder die Integration mit dem CategoriesBundle.
  • Einige Bestandteile der bisherigen Distribution wurden zurück in das Core-Repository / Monorepo geholt: im Moment wieder drin sind LegalBundle, ProfileBundle und StaticContentBundle.
  • Alle verbleibenden Module wurden grundsätzlich auf Bundles umgestellt.
  • Das RoutesBundle und damit das eigene Routing-System wurden komplett entfernt, wie im letzten Beitrag bereits in Aussicht gestellt worden war.
  • Es gibt keine Variablen (ModVars) mehr: statt dessen wird die Config-Komponente von Symfony zur Definition von Bundle Configurations verwendet.
  • Auch die CapabilityApi aus dem ExtensionsBundle musste weichen: wieder eine Konvention weniger, die kein Bundle, das für plain Symfony gebaut worden ist, erfüllen können wird.
  • Alle Referenzen zum Zikula-Kernel wurden abgebaut. Meistens wird gar nicht der Kernel an sich, sondern nur ein Parameter benötigt, der dann direkt injiziert werden kann. Ansonsten sollte nun eine Kernel Injection mit dem Type Hint auf den Symfony Kernel versehen werden.
  • Das alte Admin-Interface wird im Moment durch das EasyAdminBundle und entsprechende Dashboards abgelöst. Hierbei sind bereits das AdminBundle und die Reste vom ExtensionsBundle rausgeflogen. Übrigens bringt das neue Admin-Interface nun auch eine neue Suchfunktion mit.
  • Die Theme-Engine wird deutlich schlanker: ein Theme ist nun vom Konzept her kein eigenes Bundle mehr, sondern ein eigenes Dashboard, welches entsprechend eigene Templates und Assets verwenden kann. Im ThemeBundle wurde hierfür außerdem das ExtensionMenuInterface umgebaut, so dass ein Bundle nicht mehr Knp-Menüs, sondern Dashboard-MenuItems bereitstellen kann. Über das EasyAdminBundle werden nun unter der Haube Bootstrap 5 und FontAwesome 6 verwendet. Auch das Asset Handling läuft moderner, so gibt es etwa eine automatische Versionierung der Assets und sie werden komplett von Encore/Webpack verwaltet. Eigene Theme-orientierte Konzepte sind hierdurch obsolet geworden, zum Beispiel Page-Variablen und Theme-Variablen sind weggefallen.

Aktuell laufen noch die Integrationsarbeiten mit dem neuen Admin-Interface. Natürlich werden wir wieder hier berichten, nachdem die nächsten Meilensteine erreicht worden sind.

Weitere Beiträge in Kategorie Zikula Apps

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 …
Symfony bringt neue Webhook-Komponente
- Aktuell noch als experimentell gekennzeichnet, macht es sich die neue Komponente zur Aufgabe das Senden und Konsumieren von Webhooks zu vereinfachen. Auf den ersten Blick werden hier zwei weitere …