Probleme mit Ereignissen in Symfony2
天蓬老师
天蓬老师 2017-05-16 16:44:46
0
1
481

Ich habe mir heute das Ereigniskapitel in Symfony angesehen und selbst ein Experiment durchgeführt, aber eines verstehe ich nicht ganz.
Ich habe zunächst eine Eents-Aufzählungsklasse definiert, um alle Ereignisse zu verwalten

Ein Ereignis ist im HomepageBundle definiert

container = $container; } }

Dann wird ein Listener in FileBundle definiert


container->get("logger")->info("我执行了"); // ... } }

Registrieren Sie den Dienst in service.xml

    

Endlich habe ich das Ereignis im Controller von HomepageBundle ausgelöst

container); // 在controller里取事件分发器 $dispatcher = $this->get('event_dispatcher'); $dispatcher->dispatch(Events::HOMEPAGE_VISIT, $event); return array('name' => $name); } }

Zuerst greife ich über http://localhost/fm/web/app_dev.php/home/index darauf zu
Kann das „Ich habe ausgeführt“-Protokoll korrekt ausdrucken
Alles scheint in Ordnung zu sein, was darauf hindeutet, dass das Ereignis erfolgreich ausgelöst und ausgeführt wurde

Wenn Sie nun auf die Debug-Leiste klicken, sieht das Ereigniselement wie folgt aus:

Was ich nicht verstehe ist, warum home.homepage_visit in Not Called Listeners enthalten ist, aber offensichtlich ausgeführt wird?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

Antworte allen (1)
曾经蜡笔没有小新

你的symfony 2的具体版本?

如果确实写了log,说明你的event相关代码是有效的。

profiler(debug bar)里显示的信息,是通过data collector收集来的,至于为什么没有记录到listener的调用,则需要知道更多细节才能了解,建议你详细检查xdebug token和profiler信息的对应关系。

另外,不要直接注入container给event,这样依赖过于宽泛了。

    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!