Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

symfony2 session lifetime

I had a problem with symfony2 session component. I set some data to session through session container like this:

$sess = $this->get( 'session' ); $sess->set( 'some_key', 'some_value' ); 

But after a little bit of time (about 15-20 minutes) the session got lost.

Can I set session life time parameter? The perfect variant for me would be if I can set certain time of session live period...Can anybody please help?

like image 934
Aleksei Kornushkin Avatar asked May 09 '11 07:05

Aleksei Kornushkin


2 Answers

You can set the session expiration time in your config file under the framework section. Mine looks like this:

config.yml

framework:   secret:        %secret%   charset:       UTF-8   error_handler: null   csrf_protection:       enabled: true   router:        { resource: "%kernel.root_dir%/config/routing.yml" }   validation:    { enabled: true, annotations: true }   templating:    { engines: ['twig'] } #assets_version: SomeVersionScheme   session:       default_locale: %locale%       cookie_lifetime: 3600 // was "lifetime" but deprecated       auto_start:     true 

You can change the framework.session.lifetime value to anything you'd like, in seconds (it defaults to 3600, or 1 hour).

Reference here.

like image 124
Derek Stobbe Avatar answered Sep 19 '22 13:09

Derek Stobbe


In Symfony 2.3 I think the right answer is found in app/config/config.yml:

framework:     session:         cookie_lifetime: 7200         gc_maxlifetime: 3600 

GC (garbage collection) will be reset every time the server is hit, meaning if the user is active, he'll have 3600 to continue working. The cookie_lifetime will force the user to log out in its limit. In this example, the user will have one hour to be inactive and will be forced out in 2 hours.

like image 25
Thomas Bennett Avatar answered Sep 20 '22 13:09

Thomas Bennett