Symfony2没有激活kernel.terminate事件

时间:2014-06-25 14:19:39

标签: symfony symfony-2.5

我将使用所有这些指南将我的Symfony从2.0升级到2.5:

https://github.com/symfony/symfony/blob/master/UPGRADE-2.1.md
https://github.com/symfony/symfony/blob/master/UPGRADE-2.2.md
https://github.com/symfony/symfony/blob/master/UPGRADE-2.3.md
https://github.com/symfony/symfony/blob/master/UPGRADE-2.4.md
https://github.com/symfony/symfony/blob/master/UPGRADE-2.5.md

我的首页有效但是网络调试工具栏会抛出" 404 Not found"。 经过一整天的搜索和挖掘的symfony代码,我发现:

  1. Web调试工具栏和Profiler看起来不错但是......
  2. app / cache / dev / profiler为空(整个缓存有0777访问权限)
  3. kernel.terminate事件不会触发(最后注意到的事件是kernel.finish_request)
  4. 我无法找到调用Kernel terminate方法的地方(这是我卡住的最后一个地方)
  5. 也许有人有类似的问题?

1 个答案:

答案 0 :(得分:2)

3) kernel.terminate event wont fires

确保正确配置了收听'kernal.terminate'事件的所有服务。即Symfony应该能够实例化正在收听'kernal.terminate'事件的服务。

原因: 当Symfony调度'kernal.terminate'事件时,调度程序首先获取正在侦听此事件的服务列表。如果它无法获取服务列表,则会抛出异常。由于此异常发生在终止并且响应已经发送,因此除了日志之外,您将无法在任何地方看到异常。

如果无法获取列出到'kernal.terminate'的服务列表,则很可能由于任何原因在实例化任何服务时出错。例如。传递给构造函数的参数错误/不可用。

提示:在调试时保持跟踪symfony日志和php日志。

4) i can't find place where Kernel terminate method is called

您可以在app_dev.phpapp.php

中找到它