Symfony CurrentUser-Attribut kollidiert mit Doctrine Param Converter

in  Verschiedenes , , ,

Symfony CurrentUser-Attribut kollidiert mit Doctrine Param Converter

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.

Ein Problem entsteht dann, wenn das Zielobjekt eine Doctrine-Entität ist und darüber hinaus die Param Converter aktiviert sind. In diesem Fall wird versucht, das Objekt mit Hilfe eines Doctrine Converters aufzulösen, bevor der Argument Value Resolver seinen Job tun kann. Dies funktioniert jedoch nicht, da keine ID in der Route übergeben wird.

Während die perspektivische Lösung dieses Konflikts darin besteht, dass alle Param Converter durch Argument Value Resolver abgelöst werden, findet sich in dem dazugehörigen Symfony-Ticket der Workaround, übergangsweise das Argument mit dem Type Hint UserInterface zu versehen. Hierdurch wird der Param Converter nicht mehr ausgelöst, da es sich nicht um eine Entität handelt.

Weitere Beiträge in Kategorie Verschiedenes

HTML5 Barcode Detection API mit Polyfill verwenden
- Wer sich mit dem Thema PWA (Progressive Web App) beschäftigt, steht vor einer gewachsenen Auswahl unterschiedlicher APIs, welche Zugriff auf unterschiedliche Gerätefunktionen erlauben. So ist es …
GitHub vereinfacht Markdown-Nutzung mit Slash-Commands
- Gestern sind die GitHub Markdown Helpers in einer Beta-Version veröffentlicht worden. GitHub führt damit kleine Tools ein, mit denen unterschiedliche Elemente interaktiv eingebunden werden können. …
Das YAGNI-Prinzip in der Entwicklung
- In der Softwareentwicklung gibt es einige fundamentale Prinzipien, mit denen die Dinge einfach gehalten und Komplexitäten beherrscht werden sollen. Sehr bekannt sind etwa das KISS-Prinzip (keep it …
Dokumente und Belege mit paperless-ngx flexibel pflegen und handhaben
- Das papierlose Büro war bislang ein Traum, den wir aus Gründen der revisionssicheren Archivierung noch nicht gelebt haben. Durch einen Artikel bin ich jedoch vor ein paar Wochen auf das Open Source …
Frohe Weihnachten und erholsame Feiertage
- Wir wünschen allen Leserinnen und Lesern ein schönes Weihnachtsfest 🎅 und angenehme Festtage. Kommt gut ins neue Jahr 🎉 und lasst es Euch gut gehen.