Zum Hauptinhalt springen

assets-push-bundle

Zeitraum
2021 – 2024
Art
Symfony Bundle
Status
archiviert
Lizenz
Open Source
Website
github.com/Braunstetter/assets-push-bundle

assets-push-bundle war eines dieser Projekte, bei denen ich mir dachte: das ist doch offensichtlich, dass es so etwas geben muss.

Aus einer Twig-Partial heraus sagen können: diese Komponente braucht dieses CSS und dieses JavaScript. Und im finalen HTML tauchen die Assets einmal am richtigen Ort auf — nicht global geladen für jede Seite, aber auch nicht manuell zusammengeführt.

Die Grundlage dafür war rybakit/twig-deferred-extension. Die Extension gab mir das Deferred-Rendering, das ich brauchte, um die Assets erst am Ende einzusammeln.

Mit Twig 4 hat sich die API geändert. Die Deferred-Extension läuft seitdem nicht mehr sauber, mehrere Nutzer haben das gemeldet (Issue #20, Issue #22). Der Bug ist bekannt, ein Fix nicht in Sicht.

Solange die Extension nicht mit modernem Twig läuft, kann ich das Bundle nicht mehr guten Gewissens weiterempfehlen. Der Eintrag bleibt hier trotzdem stehen. Das Bundle hat funktioniert, es war eine saubere Lösung für ein echtes Problem — und der Stillstand liegt nicht in meinem Code.

Wenn ich das heute noch einmal angehen würde, würde ich es entweder projekt-spezifisch als kleine Twig-Extension direkt einbauen — oder deklarativ per YAML lösen, so wie es Sylius mit seinen Twig-Hooks tut.