我正在尝试使用symfony2 sessions.I这样做
$session = $this->getRequest()->getSession();
$session->set('token','value');
Run Code Online (Sandbox Code Playgroud)
这有效.但我想在会话中使用命名空间.文档说
class NamespacedAttributeBag
Run Code Online (Sandbox Code Playgroud)
提供该功能,但我无法弄清楚如何实现它
Rom*_*kiy 15
只需打开config.yml,然后在导入后添加:
parameters:
session.attribute_bag.class: Symfony\Component\HttpFoundation\Session\Attribute\NamespacedAttributeBag
Run Code Online (Sandbox Code Playgroud)
它看起来像这样:
imports:
- { resource: parameters.yml }
- { resource: security.yml }
parameters:
session.attribute_bag.class: Symfony\Component\HttpFoundation\Session\Attribute\NamespacedAttributeBag
framework:
# ...
Run Code Online (Sandbox Code Playgroud)
您应该重新定义会话服务并为您的属性包定义服务(如果您检查默认实现,session.attribute_bag您将看到此服务只有class属性).
并将新服务注入重新定义的会话服务
services:
session:
class: Symfony\Component\HttpFoundation\Session\Session
arguments:
- @session.storage
- @your.session.attribute_bag #service id is defined below
- @session.flash_bag
your.session.attribute_bag:
class: Symfony\Component\HttpFoundation\Session\Attribute\NamespacedAttributeBag
Run Code Online (Sandbox Code Playgroud)