租户侦听器在Symfony2中加载一次

租户侦听器在Symfony2中加载一次,symfony,Symfony,嗨,我有一个事件侦听器,它检查子域以确定我的Symfony2应用程序中的租户。服务配置为: services: acme.tenant.tenantlistener: class: Acme\TenantBundle\Services\TenantListener arguments: [@doctrine.orm.entity_manager] tags: - { name: kernel.event_listen

嗨,我有一个事件侦听器,它检查子域以确定我的Symfony2应用程序中的租户。服务配置为:

services:
    acme.tenant.tenantlistener:
        class: Acme\TenantBundle\Services\TenantListener
        arguments: [@doctrine.orm.entity_manager]
        tags:
            - { name: kernel.event_listener, event: kernel.request, method: checkTenant }

问题是每次我加载任何控制器操作时,此侦听器都会运行。因此,如果我从Twig调用一个控制器方法,它就会运行,从而在数据库上产生许多不必要的点击。有没有办法让这个监听器在主请求开始时只运行一次?谢谢

据我所知,仅为主请求注册侦听器是不可能的。但是有一种方法可以让代码只运行一次。在侦听器中放置以下代码:

public function onKernelRequest(GetResponseEvent $event)
{
    if (HttpKernelInterface::MASTER_REQUEST == $event->getRequestType()) {
        // place your code here so it will run only for master requests

        // ...
    }
}

据我所知,仅为主请求注册侦听器是不可能的。但是有一种方法可以让代码只运行一次。在侦听器中放置以下代码:

public function onKernelRequest(GetResponseEvent $event)
{
    if (HttpKernelInterface::MASTER_REQUEST == $event->getRequestType()) {
        // place your code here so it will run only for master requests

        // ...
    }
}

据我所知,仅为主请求注册侦听器是不可能的。但是有一种方法可以让代码只运行一次。在侦听器中放置以下代码:

public function onKernelRequest(GetResponseEvent $event)
{
    if (HttpKernelInterface::MASTER_REQUEST == $event->getRequestType()) {
        // place your code here so it will run only for master requests

        // ...
    }
}

据我所知,仅为主请求注册侦听器是不可能的。但是有一种方法可以让代码只运行一次。在侦听器中放置以下代码:

public function onKernelRequest(GetResponseEvent $event)
{
    if (HttpKernelInterface::MASTER_REQUEST == $event->getRequestType()) {
        // place your code here so it will run only for master requests

        // ...
    }
}

没错。这里是doc:感谢做了这个把戏的家伙,感谢NHG提供了到内部的链接,我不得不使用HttpKernelInterface来让它工作。谢谢你的更新。我更正了我的代码片段。好像我没有用最新的Symfony医生,没错。这里是doc:感谢做了这个把戏的家伙,感谢NHG提供了到内部的链接,我不得不使用HttpKernelInterface来让它工作。谢谢你的更新。我更正了我的代码片段。好像我没有用最新的Symfony医生,没错。这里是doc:感谢做了这个把戏的家伙,感谢NHG提供了到内部的链接,我不得不使用HttpKernelInterface来让它工作。谢谢你的更新。我更正了我的代码片段。好像我没有用最新的Symfony医生,没错。这里是doc:感谢做了这个把戏的家伙,感谢NHG提供了到内部的链接,我不得不使用HttpKernelInterface来让它工作。谢谢你的更新。我更正了我的代码片段。好像我没有用最新的Symfony医生。