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 Nachrichten erweitert werden kann. Der Scheduler erlaubt es nämlich, basierend auf einem vordefinierten Zeitplan bestimmte Messages regelmäßig zu triggern.
Mit einem Schedule Provider wird ein Zeitplan definiert. Dieser Zeitplan beinhaltet ein oder mehrere Definitionen einer RecurringMessage, wobei jede Definition einen Intervall sowie das dazugehörige Message-Objekt spezifiziert.
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 Integration mit Social Logins (Google, Facebook, usw.) oder LDAP gewünscht ist, mit Keycloak lassen sich diese Themen sehr flexibel umsetzen. Auch erweiterte Features, wie etwa eine 2-Faktor-Authentifizierung, sind möglich.
Um Keycloak mit Symfony zu integrieren, ohne sich mit der Security-Komponente von Symfony im Detail auseinandersetzen zu müssen, bietet sich dieses Bundle an.
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, allerdings gab es auch immer mal wieder kleinere Defiziten zu bewältigen.
Nun gibt es einen offiziellen Nachfolger oder Ersatz: der aktuell noch als experimentell gekennzeichnete UX Translator bringt einige Verbesserungen mit, welche die Nutzung vereinfachen. So wird zum Beispiel auch die Intl ICU Syntax unterstützt.

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 Beitrag zeigt im Folgenden die bisher veröffentlichten Blog-Beiträge thematisch nach Komponente sortiert.
Allgemein Early Hints Enum Verbesserungen Performance Optimierungen Emoji Verbesserungen DX Verbesserungen Teil 1 DX Verbesserungen Teil 2 DX Verbesserungen Teil 3 AssetMapper Neue AssetMapper-Komponente Clock Clock Verbesserungen DependencyInjection DI Verbesserungen Form Kleinere Verbesserungen HttpClient HttpClient Verbesserungen HttpFoundation Request Payload HttpKernel HTTP Exception Attribute Request-Daten zu typisierten Objekten mappen Targeted Value Resolver Mapper für Query-Parameter Notifier Notifier-Integrationen RemoteEvent Neue RemoteEvent-Komponente (siehe auch diesen Beitrag) Scheduler Neue Scheduler-Komponente (siehe auch diesen Beitrag) Security OpenID Connect Token Handler Login und Logout Verbesserungen Serializer Serializer Debug Command Validator NoSuspiciousCharacters-Constraint PasswordStrength-Constraint Webhook Neue Webhook-Komponente (siehe auch diesen Beitrag) Webhook-Integration mit Mailer und Notifier WebProfiler WebProfiler Verbesserungen
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 Bausteine miteinander verbunden: der Symfony Messenger wird mit einem RemoteEvent kombiniert. Letzteres stammt aus einer gleichnamigen, ebenfalls eine neu eingeführten Symfony-Komponente. Weitere Details, etwa zur Abstraktion der Requests, sind in den Slides ersichtlich.
Ressourcen Slides Keynote SymfonyCon 2022 GitHub Repository der Webhook-Komponente GitHub Repository der RemoteEvent-Komponente Pull Request mit Entwurf der Dokumentation
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 Beispiel bestimmte Testszenarien oder Token-basierte Authentifizierung.
Nun ist Symfony 6.2.7 verfügbar, worin das Problem und mehrere weitere Bugs behoben worden sind.
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 diesem Bundle an neuen Innovationen ergibt.
Eine schöne neue Funktion wurde vor kurzem fertiggestellt und wartet aktuell darauf, eingebunden zu werden: mit einem Column chooser wird es möglich, sich nur ausgewählte Tabellenspalten anzeigen zu lassen und die Spalten darüber hinaus frei zu sortieren.

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 Folgenden die bisher veröffentlichten Blog-Beiträge thematisch nach Komponente sortiert.
Allgemein Attribute für Cache, Security, Template und Doctrine Bessere Debugging-Kommandos Verbesserter Enum-Support DX Verbesserungen Clock Neue Clock-Komponente Console Console-Verbesserungen Finder Finder-Verbesserungen Intl Besserer Support für Emojis Mailer Neue Integrationen Erweiterbarkeit für den Mailer Notifier Neue Integrationen Profiler Profiler Redesign Routing PSR-4 Route Loader Security Access Token Authenticator Security-Verbesserungen (Teil 1) Security-Verbesserungen (Teil 2) String Besserer Support für Emojis Translation Bessere Extraktion von PHP-Übersetzungen Uid Neue UID-Features Validator Bedingte Constraints Verbesserter File-Validator VarExporter Unterstützung für Lazy-Loading von Objekten Eine ganze Reihe weiterer Neuerungen können der Release-Ankündigung der ersten Beta entnommen werden.
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 gilt, betrifft die miteinander zusammenhängenden Themen Benutzer, Gruppen, Rechte, Rollen, Security. Dieser Beitrag beleuchtet unsere damit einhergehenden Gedankengänge und zeigt auf, welchen Plan wir für die nächsten Schritte verfolgen wollen.
Wo kommen wir her? Seither wurden die relevanten Funktionen in Zikula durch folgende Bausteine bereitgestellt:
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 fortgeschritten.
Änderungen im Zikula Core Zikula bietet in seinem ThemeBundle per Standard ein UserDashboard und ein AdminDashboard, die beide das Site Branding verwenden. Diese können leicht in einem Projekt angepasst und erweitert werden. Darüber hinaus ist es natürlich möglich, weitere Dashboards hinzuzufügen, um spezifische Sichten für weitere Gruppen bereitzustellen.