vida útil de la sesión symfony2

Tuve un problema con el componente de sesión de Symfony2. Establecí algunos datos para la sesión a través del contenedor de sesión de esta manera:

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

Pero después de un poco de tiempo (alrededor de 15-20 minutos) la sesión se perdió.

¿Puedo configurar el parámetro de tiempo de vida de la sesión? La variante perfecta para mí sería si puedo establecer un cierto período de tiempo de la sesión en vivo … ¿Alguien puede ayudarme?

Puede establecer el tiempo de caducidad de la sesión en su archivo de configuración en la sección de framework . El mío se ve así:

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 

Puede cambiar el valor de framework.session.lifetime a cualquier cosa que quiera, en segundos (por defecto es 3600 o 1 hora).

Referencia aquí .

En Symfony 2.3 creo que la respuesta correcta se encuentra en app / config / config.yml:

 framework: session: cookie_lifetime: 7200 gc_maxlifetime: 3600 

El GC (recolección de basura) se reiniciará cada vez que se golpee el servidor, lo que significa que si el usuario está activo, tendrá 3600 para seguir trabajando. El cookie_lifetime forzará al usuario a cerrar sesión en su límite. En este ejemplo, el usuario tendrá una hora para estar inactivo y será expulsado en 2 horas.

Para trabajar cómodamente, puede configurar en el entorno de desarrollo un cookie_lifetime to 0 , significa que la cookie caduca cuando se cierra el navegador.

Archivo: config_dev.php

  framework: session: cookie_lifetime: 0