Vì cũng có thể sử dụng Thành phần HTTPFoundation bên ngoài Symfony2, cách t o triển khai NamespacedUserBags như sau:
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();
Đăng ký bao nhiêu túi tùy thích, nhưng đảm bảo thực hiện việc này trước khi bạn bắt đầu phiên. Bây giờ bạn có thể chuyển đổi giữa các túi sử dụng getBag():
$activeBag = $session->getBag('<your_tag_name>');
và truy cập vào túi namespaced với các phương pháp điển hình:
$activeBag->set('tokens/a', 'adsf82983asd');
$activeBag->set('tokens/b', 'daslfl232l3k');
print_r($activeBag->get('tokens'));
FYI: điều này sẽ không làm việc trong Symfony 3, kể từ khi họ tách ra tất cả các tham số lớp. –