Symfony:事件订阅者阻止调用控制器
Symfony: Event Subscriber prevent from Calling controller
我订阅了以下活动:
namespace AppBundle\EventSubscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpFoundation\Response;
class BeforeResolvingController implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
// return the subscribed events, their methods and priorities
return array(
KernelEvents::REQUEST => array(
array('limitVisitor',0)
),
);
}
public function limitVisitor($e)
{
return new Response("Hello");
}
}
并且我已将以下内容放入 services.yml
文件中:
app.request_subscriber:
class: AppBundle\EventSubscriber\BeforeResolvingController
tags:
- { name: kernel.event_subscriber }
我想做的是不调用controller直接打印输出。在不久的将来,将实施一种控制机制,我希望能够根据情况阻止调用控制器。
你知道怎么做吗?上面的代码似乎不起作用。正如我在 http://symfony.com/doc/current/components/http_kernel.html#component-http-kernel-kernel-request 中看到的那样,我能够做到这一点。
limitVisitor
方法我应该这样实现:
public function limitVisitor(GetResponseEvent $e)
{
$response=new Response("Hello");
$e->setResponse($response);
}
并且将显示消息 Hello
。
我订阅了以下活动:
namespace AppBundle\EventSubscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpFoundation\Response;
class BeforeResolvingController implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
// return the subscribed events, their methods and priorities
return array(
KernelEvents::REQUEST => array(
array('limitVisitor',0)
),
);
}
public function limitVisitor($e)
{
return new Response("Hello");
}
}
并且我已将以下内容放入 services.yml
文件中:
app.request_subscriber:
class: AppBundle\EventSubscriber\BeforeResolvingController
tags:
- { name: kernel.event_subscriber }
我想做的是不调用controller直接打印输出。在不久的将来,将实施一种控制机制,我希望能够根据情况阻止调用控制器。
你知道怎么做吗?上面的代码似乎不起作用。正如我在 http://symfony.com/doc/current/components/http_kernel.html#component-http-kernel-kernel-request 中看到的那样,我能够做到这一点。
limitVisitor
方法我应该这样实现:
public function limitVisitor(GetResponseEvent $e)
{
$response=new Response("Hello");
$e->setResponse($response);
}
并且将显示消息 Hello
。