Symfony2 监听器和会话
Posted
技术标签:
【中文标题】Symfony2 监听器和会话【英文标题】:Symfony2 Listeners and Sessions 【发布时间】:2012-12-13 16:15:39 【问题描述】:我正在尝试在 Symfony2 监听器(Symfony v. 2.0.16)中设置会话数据,但不知何故监听器不会注册会话变量。
我有以下几点:
我的 services.yml 条目:
kernel.listener.domain_listener:
class: Etiam\ClubWebBundle\Listener\SubdomainListener
arguments: [@service_container]
tags:
- name: kernel.event_listener, event: kernel.request, method: onDomainParse
这是我的听众:
namespace Etiam\ClubWebBundle\Listener;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\EventDispatcher\Event;
class SubdomainListener
private $container;
public function __construct($container)
$this->container = $container;
public function onDomainParse(Event $event)
$session = $this->container->get('session');
$session->set('siteData', '123');
$session->save();
谁能告诉我为什么在访问监听器时没有保存我的会话数据?
【问题讨论】:
【参考方案1】:好的,我想通了。
如果有人遇到与 Listeners 类似的情况,表明您正在更改内容但没有任何反应:
如果您有多个捆绑包,您可能有 2 个相同的侦听器,而您正在编辑错误的侦听器。侦听器显然是全局的,您只需要一个即可在多个捆绑包中有效。
您可以在事件分析器中看到已加载的侦听器。
【讨论】:
以上是关于Symfony2 监听器和会话的主要内容,如果未能解决你的问题,请参考以下文章