2017-07-01 15 views
1

php/symfonyエキスパート!session_write_close symfony 2 and 3

この質問は特にあなたのためです。

/** 
* @Route("/your-route", name="your-route") 
*/ 
public function indexAction() 
{ 

    $this->get('session')->save(); 

    sleep(10); 

    return $this->render('template.html.twig'); 
} 

リクエストが期待通りに別のブラウザで並列に実行され、このコード例を試すが、なぜ同じブラウザで順次?

答えて

0

異なるブラウザでセッションが異なるため、セッションロックはありませんが、1つのブラウザの異なるタブで同じセッションを開こうとします。

これは、セッションロックがデフォルトの動作として行われる理由です。

$session->save()を実行すると、session_write_close()関数が呼び出され、そのファイルにセッションが保存されます。そしてデフォルトでsymfonyはphp.iniからsession.save_pathの値を再定義します。

だから、あなたがこの問題を参照してください パス「/your_project_path/app/../var/sessions/dev」のパーミッションをチェックする必要がありそうです:Warning: session_write_close(): Failed to write session data.... #17845

+0

アクセス権に問題はありません。 – igorpromen