Hier ist meine service.yml:Symfony Zuhörer nach Twig Erweiterungen beim ersten Start beginnt
services:
foo.builder:
class: MyBundle\Core\MyClass
foo.twig_extension:
class: MyBundle\Twig\BarExtension
arguments: ['@foo.builder']
tags:
- { name: twig.extension }
foo.listener.foolistener:
class: MyBundle\EventListener\MyListener
arguments: ['@service_container']
tags:
- { name: kernel.event_listener, event: kernel.controller, method: createFooObject }
Mein Zuhörer vor meinem Zweig Erweiterungen beginnt immer und es ist gut, aber nicht nur nach dem Cache leeren ... My App stürzt immer beim ersten Mal ab (nachdem der Cache geleert wurde oder die Parameter geändert wurden), da meine Zweig-Erweiterung ein Objekt haben muss, das bereits vom Listener hydratisiert wurde. Also, wenn es vor dem Start, zum Absturz bringt es normalerweise :(
1/was ist das Problem?
2/wie kann ich meine Zuhörer immer vor Zweig Erweiterung zu beginnen zwingen?
Alle Vorschläge sind willkommen
Sie können nicht. Twig-Erweiterungen werden immer erstellt, bevor die Listener aufgerufen werden. Was Sie tun müssen, ist, Ihr Objekt zu erhalten, wenn der Zweigfilter oder die Funktion aufgerufen wird. – Cerad
Aber ... Nur das erste Mal nach dem Löschen des Caches ??? – rudak
Sie interpretieren Ihre Schlussfolgerung zum Cache-Clearing falsch. Ich nehme an, dass die Ergebnisse von MyListener :: createFooObject in Ihrer Erweiterung landen? Vielleicht poste ein bisschen mehr Code und vielleicht können wir genau sehen, was vor sich geht. – Cerad