2017-05-29 8 views
0

Symfonyでは、フロントコントローラの環境を変更することができます。 proddevまでから:Symfonyユーザをログアウトせずに環境を切り替える方法

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>に保存されています。つまり、開発環境とプロダクト環境ではセッションが別々になっているだけです。

framework:sessione:save_pathの設定でこれを変更することができます。あなたは、静的なものに%kernel.environment%を変更することにより、常に同じディレクトリにあることを、それを変更することができます

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

:ように見えるconfig.ymlにデフォルトで 。

別の方法としては、そのファイルにこのような構成を置くことによってPRODセッションを使用するconfig_dev.ymlでのdevの設定をオーバーライドすることができます:

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

ありがとうございます – ShinDarth

関連する問題