Symfony2:创建事件监听器:语法错误,意外' - ',期待'(''

时间:2012-08-31 12:04:26

标签: php symfony

我已经实施了"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);
    }
}

1 个答案:

答案 0 :(得分:0)

尝试在服务名称中不使用连字符。

services:
    kernel.listener.lhn-exception:    
    ...

变为:

services:
    kernel.listener.lhn_exception:    
    ...