2017-05-29 94 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

相關問題