2017-05-29 37 views
0

在Symfony中,您可以更改前端控制器的环境,例如,从proddevSymfony如何在不注销用户的情况下切换环境

if (/* some conditions */) { 
    $kernel = new AppKernel('prod', false); 
} else { 
    $kernel = new AppKernel('dev', true); 
} 

$request = Request::createFromGlobals(); 
$response = $kernel->handle($request); 
$response->send(); 
$kernel->terminate($request, $response); 

,但每次在环境的变化,用户被注销的时间。有没有办法阻止它?

+0

为什么你会需要这个? –

+0

,因为每次更改环境时都很难注销并重新登录,所以不必执行此操作会更方便 – ShinDarth

+0

我怀疑当您切换环境时,会丢失会话包,其中登录的用户数据被储存了。 – gskema

回答

3

会话数据默认保存在/var/sessions/<env name>中,这意味着对于dev和prod环境,您只需单独进行会话。

您可以在framework:sessione:save_path下更改配置。 默认情况下,在config.yml它看起来像:

framework: 
    session: 
     save_path: "%kernel.root_dir%/../var/sessions/%kernel.environment%" 

你可以通过改变%kernel.environment%成静态的东西改变它总是相同的目录。

另外,您可以覆盖开发配置在config_dev.yml通过将这样的配置在文件中使用PROD会话:

framework: 
    session: 
     save_path: "%kernel.root_dir%/../var/sessions/prod" 
+0

谢谢你的工作 – ShinDarth

相关问题