Store objects in sessions Symfony 2

php, session, symfony

Solution

Don't know if this way is the better way to store your data temporary. You can use this to instantiate a session object :

` $session = $this->get("session");`

Don't forget the 'use' in your controller :

use Symfony\Component\HttpFoundation\Session;

Then, the session starts automatically when you want to set a variable like :

` $session->set("product name","computer");`

This is based on the use of the Session class, easy to understand. Commonly definitions :

get(string $name, mixed $default = null)

Returns an attribute.
    
set(string $name, mixed $value)

Sets an attribute.

has(string $name)

Checks if an attribute is defined.

Also, take a look to the other ways to store your data : Multiple SessionStorage

UPDATED LINK: Session usage: https://symfony.com/doc/current/session.html

Problem

I am writing a small e-shop application with Symfony 2 and I need some way to store the user's shopping cart in a session. I think using a database is not a good idea. The application will use entities like Product, Category, ShoppingCart where Product and Category are persisted into the database and users will be choosing products into their ShoppingCart. I have found NativeSessionStorage class which is supposed to save an entity into a session. But there is no written process of implementation into an application. Do I use this in the controller or in a separated class ShoppingCart? Could you give me a short example of `NativeSessionStorage` usage? EDIT: The question was not set correctly: The goal is not to save all product ids into a cookie. The goal is to save only a reference for basket (filled with products) in application memory on server-side and assign proper basket to user. Is this even possible to do this in PHP? EDIT2: Is a better solution to use a service?

Original source