我已经实现了“如何创建事件监听器”来捕获和处理我的应用程序抛出的所有异常。
但是,当我转到主页时,我收到了这个错误(来自 apache 日志):
在生产模式下(app.php):
语法错误,意外'-',期待'(' appProdProjectContainer.php 第 383 行
在开发中。模式(app_dev.php):
语法错误,意外的“-”,在第 1131 行的 appDevDebugProjectContainer.php 中预期为“(”
我用谷歌搜索,但我没有找到可以解决我的问题的东西......
所以,在这里,我的services.yml由“DependencyInjection/lhnbackendExtension”类加载:
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);
}
}