CakePHP3でDBセッションをつかう

セッションの管理方法を設定。WEBサーバーの冗長化の際にはDBで行うのがもっともシンプルでいいっぽい。(今のところ)

app/config/app.php

上記がファイルのセションの項目をphpからdatabaseに変更します。handlerでDBテーブルのモデルを指定するとそのテーブルを読みに行ってくれます。

'Session' => [
//'defaults' => 'php',
'defaults' => 'database', // database sessionを利用する
'handler' => array(
'model' => 'CakeSession' // cake_sessionテーブルに格納
),
'use_cookies' => 1,
],

当然テーブルを作成しないと動きませんのでエラー。CakeSessionテーブルを作成します。モデルがCakeSessionの場合はcake_sessionテーブルという名前で作成します。キャメルケースと関連して命名規則があるというわけです。で、なんですが、CakePHP2と同じやり方でできるっぽいので、つまり変わってないってことですね。

CREATE TABLE IF NOT EXISTS `cake_session` (
`id` varchar(255) NOT NULL DEFAULT '',
`data` text NOT NULL,
`expires` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

これだけでできてしまうので、楽ちんです。ほんとに。