0

我将使用所有这些指南将我的 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

我的首页有效,但 Web 调试工具栏抛出“404 Not found”。经过一整天的搜索和挖掘,我发现了 symfony 代码:

  1. Web 调试工具栏和探查器看起来不错,但是...
  2. app/cache/dev/profiler 为空(整个缓存有 0777 访问)
  3. kernel.terminate 事件不会触发(最后注意到的事件是 kernel.finish_request)
  4. 我找不到调用内核terminate方法的地方(那是我最后卡住的地方)

也许有人有类似的问题?

4

1 回答 1

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

于 2014-06-26T10:57:16.827 回答