我是Symfony 2.1中的symfony项目
当我迁移到2.3时,服务似乎开始之前的会话。 所以我的代码无法修复会话ID。
有没有办法找到之前的服务使用会话?
答案 0 :(得分:3)
我不知道答案,但我的想法是创建一个请求监听器,将其设置为高值的优先级,并尝试设置id。例如:
services.yml
request_listener:
class: My\Bundle\Service\Listener\RequestListener
arguments: [ @session]
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest, priority: 9 }
和请求监听器:
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
class RequestListener
{
protected $session;
function __construct(Session $session)
{
$this->session = $session;
}
public function onKernelRequest(GetResponseEvent $event)
{
$this->session->setId(xx);
}
}
答案 1 :(得分:0)
感谢大家的回答和评论。
确实,Symfony 2.3增加了新的听众,这些都是问题的根源。