Der Bundle-Generator bekommt eine Verschlankungskur

in  Generator , , ,

In den letzten Tagen sind die ersten Arbeitsschritte zur weiteren Modernisierung der von ModuleStudio generierten Symfony-Bundles bzw. Zikula-Module umgesetzt worden. Dieser Beitrag zeigt kurz die entsprechenden Änderungen auf: Alte Zöpfe abgeschnitten Die unterstützten Zikula Core-Versionen wurden auf die Zukunft ausgerichtet: so können die veralteten Versionslinien 1.5.x und 2.x nicht mehr ausgewählt werden. Hierdurch ist natürlich sehr viel alter Code entfernt worden. Die Version 3.0.x ist nun der neue Standard, außerdem wurden neue Optionen für 3.

Symfony und API Platform starten offiziellen Docker-Support

in  Basics , , ,

Seit knapp einem Monat steht eine umfangreiche Unterstützung zur Docker-basierten Arbeit mit Symfony bereit. Hierbei gibt es Neuerungen in mehreren zentralen Werkzeugen, die ineinander greifen und aufeinander aufbauen: Das Composer-Plugin Flex kann bei Bedarf nun neue Services in die Datei docker-compose.yml eintragen sowie notwendige PHP Extensions und Bibliotheken im Dockerfile anpassen. Symfony CLI erkennt, dass Docker Compose für das Projekt verwendet wird, und stellt automatisch entsprechende Umgebungsvariablen bereit. Mit dem Beispielcontainer Symfony Docker lassen sich schnell neue Projekte aufsetzen.

Zikula 3 - Cross-Release und weitere Ausrichtung

in  Zikula Apps , , , ,

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 bereitgestellt. Die Änderungen im Detail werden in der Release-Ankündigung aufgelistet. Zikula 3.1.0 hat etwas mehr an Bord Außerdem ist auch Zikula Core 3.1.0 erschienen; dieses Update beinhaltet zusätzlich einige Neuerungen, bringt aber auch Veränderungen mit. Auch hierfür gibt es eine detaillierte Liste mit den Korrekturen, hinzugefügten Features und sonstigen Neuerungen.

Kommende Neuerungen in Symfony 5.4

in  Zikula Apps , ,

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 Updates freuen können. Im Folgenden sind die bisher veröffentlichten Blog-Beiträge thematisch nach Komponente sortiert. PHP 8.1 Unterstützung für PHP Enumerations (siehe auch diesen Artikel dazu) Console Console Autocompletion (siehe auch diesen Artikel dazu) DependencyInjection DI-Verbesserungen Filesystem Neue Path-Klasse Framework Veränderungen für Controller Konfigurierbare Exceptions Language Negotation Sonstige Features - Teil 1 Sonstige Features - Teil 2 Sonstige Features - Teil 3 Messenger Messenger Verbesserungen Notifier Notifier Integrationen Profiler Überarbeitete Profiler Logs Profiler Verbesserungen Routing Route Aliasing Security Schnellere Security Voter Serializer Serializer Verbesserungen Translator Translation Verbesserungen Validation Verschachtelte Validation Attribute Neue Validierungsmöglichkeiten

Problem mit zirkulären Abhängigkeiten durch Dekoratoren in Symfony 5.3.7

in  Verschiedenes , , , ,

Symfony erlaubt das Dekorieren von Services: hierbei wird im Gegensatz zum Überschreiben bestehender Services eine Ummantelung derselben vorgenommen. Immer dann, wenn der ursprüngliche Service injiziert werden soll, wird statt dessen der ihn dekorierende Ersatz verwendet. Dies ist immer dann praktisch, wenn man zusätzliche Funktionalität hinzufügen möchte, jedoch keinen Zugriff auf den originalen Service hat - zum Beispiel aus Gründen der Entkopplung oder schlicht und ergreifend weil das zu erweiternde Bundle von Dritten entwickelt wird.

Symfony CurrentUser-Attribut kollidiert mit Doctrine Param Converter

in  Verschiedenes , , ,

Symfony und Doctrine bieten bereits Unterstützung für unterschiedliche native Attribute, welche seit in PHP 8 verwendet werden können. So lassen sich diese unter anderem für ORM-Definitionen (#[ORM\*]), Validierungsregeln (#[Assert\*]), Routen (#[Route]) oder zur Injektion von Service Tags (#[TaggedIterator]) einsetzen. Das Attribut #[CurrentUser] erlaubt es, das Objekt mit dem aktuell angemeldeten Nutzer direkt als Controller-Argument zu übergeben; ein Beispiel hierfür lässt sich diesem Blog-Artikel entnehmen. Intern wird hierbei ein Argument Value Resolver benutzt.

Kommende Neuerungen in Symfony 5.3

in  Zikula Apps , ,

Vor zwei Tagen wurde Symfony 5.3.0-BETA4 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 Updates freuen können. Im Folgenden sind die bisher veröffentlichten Blog-Beiträge thematisch nach Komponente sortiert. Config Config Builder Klassen Console Negierbare Command-Optionen Verbesserte Debug-Commands Lazy Command Description DependencyInjection Mehrere Environments in einer Datei konfigurieren Service Autoconfiguration und Attribute Service Autowiring mit Attributen Form Tailwind CSS Form Theme Form Handler Helper Sortierung für Formularfelder HttpFoundation Session Service Deprecation Logging Logging-Verbesserungen (Messenger, Deprecations) Notifier Notifier-Integrationen OptionsResolver Prototype Optionen PasswordHasher Neue PasswordHasher Komponente Runtime Neue Runtime Komponente Security Verbesserter Schutz gegen Breach-Angriffe Serializer Inlined Serialization Context Twig Serialize-Filter Translation Translation Providers Uid Uid-Verbesserungen

Symfony Messenger - Behandlung erneut fehlgeschlagener Nachrichten

in  Zikula Apps , , , ,

Im Symfony Messenger gibt die Möglichkeit, fehlgeschlagene Nachrichten an eine failed queue zu leiten. In diesem Sammelbecken können diese dann inspiziert und nach Korrektur des zu Grunde liegenden Problems erneut verarbeitet werden. Schlagen sie dabei erneut fehl, landen sie allerdings per Standard nicht wieder in der failed queue, sondern werden verworfen. Dies hat damit zu tun, dass die Nachricht bereits einen SentToFailureTransportStamp besitzt. Möchte man jedoch die Nachricht immer wieder auffangen, bietet es sich an, diesen Stamp einfach vorher wieder zu entfernen.

Response-Eigenschaften im Zikula Theme-Layer anpassen

in  Zikula Apps , ,

In Zikula gibt es eine Besonderheit zu beachten, welche Einfluss darauf nimmt, wie die aus einem Request resultierende Response zum anfragenden Client gelangt. Per Standard wird die Response in Symfony im Rahmen einer Controller-Aktion erstellt und zurückgeliefert. Gegebenfalls wird die Response noch von einem oder mehreren Event Subscribern verändert. Bei Zikula wird noch eine Theme-Schicht dazwischen geschaltet, welche den Inhalt der Response in eine neue Response überführt, um den Layout-Rahmen sowie damit einhergehende, zusätzliche Blöcke usw.