はじめに
CakePHP3にてセッションタイムアウト時間の変更方法についてまとめました
環境
CakePHP 3.5.17
TL;TD
- config/app.phpのSessionにtimeoutを設定します
- 設定しないと、php.iniの「gc_maxlifetime」の値となります
設定方法
- Sessionにtimeoutの設定を追加する、単位は「分」
- 以下は10分でタイムアウトするように設定しています
config/app.php
'Session' => [
'defaults' => 'php',
'timeout' => 10
],
セッションの設定を追いかけてみた
- timeoutを設定すると、gc_maxlifetimeを更新しているため、設定しないと、gc_maxlifetimeの設定値が有効になります
vendor/cakephp/cakephp/src/Network/Session.php
public function __construct(array $config = [])
{
if (isset($config['timeout'])) {
$config['ini']['session.gc_maxlifetime'] = 60 * $config['timeout'];
}
}
- ちなみに、gc_maxlifetimeのデフォルトは以下となっています
- session.gc_maxlifetime = 1440
- 単位は秒なので、24分となります
まとめ
- CakePHP3でセッションタイムアウトを変更したい方は参考にしてみてください