Ponieważ możliwe jest również użycie komponentu HTTPFoundation poza Symfony2, sposób t o wdrożenie NamespacedUserBags jest następujący:
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Session\Attribute\NamespacedAttributeBag;
$session = new Session();
//first bag
$myAttributeBag = new NamespacedAttributeBag('<your_storage_key_1>');
$myAttributeBag->setName('<your_tag_name_1>');
$session->registerBag($myAttributeBag);
//second bag
$myAttributeBag = new NamespacedAttributeBag('<your_storage_key_2>');
$myAttributeBag->setName('<your_tag_name_2>');
$session->registerBag($myAttributeBag);
$session->start();
Rejestruj tyle worków, ile chcesz, ale upewnij się, aby to zrobić przed rozpoczęciem sesji. Teraz można przełączać za pomocą worków getBag():
$activeBag = $session->getBag('<your_tag_name>');
i dostęp do przestrzeni nazw torbę z typowych metod:
$activeBag->set('tokens/a', 'adsf82983asd');
$activeBag->set('tokens/b', 'daslfl232l3k');
print_r($activeBag->get('tokens'));
FYI: to nie zadziała w Symfony 3, ponieważ wyodrębniły one wszystkie te parametry klasy. –