我已经实施了"How to create an Event Listener"来抓住&处理我的应用程序抛出的所有异常。
但是,当我进入主页时,我收到了这些错误(来自apache日志):
在生产模式(app.php)中:
语法错误,意外' - ',期待'('appProdProjectContainer.php第383行
在开发中。模式(app_dev.php):
语法错误,意外' - ',期待'('在第1131行的appDevDebugProjectContainer.php
我用Google搜索了,但我找不到能解决问题的东西......
所以,这里是由“DependencyInjection / lhnbackendExtension”类加载的 services.yml :
services:
kernel.listener.lhn-exception:
class: lhn\backendBundle\Listener\LhnExceptionListener
tags:
- { name: kernel.event_listener, event: kernel.exception, method: onKernelException }
- >我试图在XML文件中配置服务,但同样的错误发生......
基本的监听器实现:
namespace lhn\backendBundle\Listener;
use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
use Symfony\Component\HttpFoundation\Response;
class LhnExceptionListener
{
public function onKernelException(GetResponseForExceptionEvent $event){
// We get the exception object from the received event
$exception = $event->getException();
$message = 'My Error says: ' . $exception->getMessage();
// Customize our response object to display our exception details
$response = new Response();
$response->setContent($message);
$response->setStatusCode($exception->getStatusCode());
// Send our modified response object to the event
$event->setResponse($response);
}
}
答案 0 :(得分:0)
尝试在服务名称中不使用连字符。
services:
kernel.listener.lhn-exception:
...
变为:
services:
kernel.listener.lhn_exception:
...