简单的Symfony2事件看似已设置,但未触发

简单的Symfony2事件看似已设置,但未触发,symfony,Symfony,我正在尝试设置一个简单的事件侦听器,以便在每个请求的开始和之前执行一些代码。我只是想重复一个简单的信息来检查它是否正常工作 如果我犯了错误(例如输入错误)或配置错误(就像我过去30分钟所做的那样),那么它会返回各种错误消息。但是我想我已经设置好了,因为错误信息已经消失了 这是我的代码: 我已将其添加到我的/app/config.yml文件中 services: kernel.listener.request_listener: class: Acme\Bundle\New

我正在尝试设置一个简单的事件侦听器,以便在每个请求的开始和之前执行一些代码。我只是想重复一个简单的信息来检查它是否正常工作

如果我犯了错误(例如输入错误)或配置错误(就像我过去30分钟所做的那样),那么它会返回各种错误消息。但是我想我已经设置好了,因为错误信息已经消失了

这是我的代码:

我已将其添加到我的/app/config.yml文件中

services:
    kernel.listener.request_listener:
        class: Acme\Bundle\NewBundle\EventListener\RequestListener
        tags:
            - { name: kernel.event_listener, event: kernel.exception, method: onKernelRequest }
这是相关文件中的代码

namespace Acme\Bundle\NewBundle\EventListener;

use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpFoundation\Response;

class RequestListener
{
    public function onKernelRequest(GetResponseEvent $event)
    {
        $response = new Response();
        $response->setContent("hello");

        $event->setResponse($response);     

    }

}

我相信您已经钩住了一个错误的事件
kernel.exception
,它只有在异常发生时才被调用/调度

我认为您应该钩住
内核.request
事件

services:
    kernel.listener.request_listener:
        class: Acme\Bundle\NewBundle\EventListener\RequestListener
        tags:
            - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
kernel.request
在每个请求上调用/调度,然后再开始处理请求

在执行其他操作之前,会通知kernel.request事件——如果其中一个侦听器返回响应,它会直接跳到步骤8


完美的知道了。当它允许我接受答案时,我会回来(7分钟)。谢谢