CakePHP2.x SessionをDBに保存

ここではCakePHP2.xでのSessionの保存先にデータベースを使用する方法を解説していきます。

cakephp

core.phpの編集

/app/Config/core.php

Configure::write('Session', array(
        'defaults' => 'database',
        'ini' => Array(
                //ブラウザを閉じた時にセッションを破棄
                'session.cookie_lifetime' => 0, 
        )
));

defaultsにdatabaseを設定、他にはphp、cakeなどがあります。

Session保存用のテーブル作成

/app/Config/Schema/sessions.sql

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

これだけでSession情報がDBに登録されるようになります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*