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?
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 :
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 :
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