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