0

我已经实现了如何创建事件监听器来捕获和处理我的应用程序抛出的所有异常。

但是,当我转到主页时,我收到了这个错误(来自 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);
    }
}
4

1 回答 1

0

尽量不要在服务名称中使用连字符。

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

变成:

services:
    kernel.listener.lhn_exception:    
    ...
于 2012-08-31T12:10:30.253 回答