laravelの多重投稿の防止策を調べています。
訳があってバージョンは4.1.*です。
sessionのドライバはfileを指定しています。
laravel/app/config/session.php
'driver' => 'file',
前のリクエストが終わるのを待たせるためにPHPのsessionを利用できないかと思い
bootstrap/start.phpにとりあえず以下を追加してみました。
laravel/bootstrap/start.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/laravel/bootstrap/start.php b/laravel/bootstrap/start.php
index 2fd7200..9f217aa 100644
--- a/laravel/bootstrap/start.php
+++ b/laravel/bootstrap/start.php
@@ -1,5 +1,5 @@
<?php
-
+session_start();
/*
|--------------------------------------------------------------------------
| Create The Application
controllerにSession::put('no', Session::get('no', 0) + 1);と書いて
apache benchで以下のコマンドを実行し、100インクリメントされることを確認しました。
ab -n 100 -c 10 -C "LARAVEL_SID=abc; PHPSESSID=efg" http://example.com
ただし、以下でtaylorotwellが気になる発言をしています。
https://github.com/laravel/framework/issues/5416#issuecomment-68366445
Using native PHP sessions is not a good solution. Native PHP sessions output cookies straight to the headers and there is no way to change that. It breaks the entire request/response wrapping we are trying to achieve.
PHPのsessionを使うことによって具体的にどのような影響がでますか?