将Symfony从2.1升级到2.3:会话开始的地方?

时间:2014-03-21 09:45:43

标签: php session symfony migration symfony-2.3

我是Symfony 2.1中的symfony项目

当我迁移到2.3时,服务似乎开始之前的会话。 所以我的代码无法修复会话ID。

有没有办法找到之前的服务使用会话?

2 个答案:

答案 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增加了新的听众,这些都是问题的根源。