こんにちは、さるまりんです。
FuelPHPはデフォルトではcookie(クッキー)でセッション管理をします。
これを後述の設定ファイルでデータベースやファイルで管理するように設定できます。
今回はredisで管理する方法です。
1. セッションの設定ファイル
fuel/core/config/session.php
をコピーして、fuel/app/config/session.php
を作ります。
この中でSessionを設定します。
変更するのはdriver
の項目です。
ここを
/**
* -------------------------------------------------------------------------
* Driver
* -------------------------------------------------------------------------
*
* If no session type is requested, use 'cookie' as the default value.
*
*/
'driver' => 'cookie',
'driver' => 'redis',
変更します。
このファイルの中のredisの項目はこんな感じです。
// specific configuration settings for redis based sessions
/**
* -------------------------------------------------------------------------
* Configurations - Redis Based
* -------------------------------------------------------------------------
*
* Special configuration settings for Redis based sessions.
*
*/
'redis' => array(
'cookie_name' => 'fuelrid',
/**
* ---------------------------------------------------------------------
* Database Name
* ---------------------------------------------------------------------
*
* Name of the Redis database to use (as configured in config/db.php).
*
*/
'database' => 'default',
),
cookie_name
はセッションを格納するために使われるcookieの名前です。
database
はどのredisを使うかの設定です。これはコメントにあるようにconfig/db.php
で設定します。
2. データベースの設定ファイル
次はデータベースの設定ファイルを作成します。
すでにRDBなど他のデータベースを利用している場合はファイルが存在するはずです。
fuel/app/config/[環境]/db.php
ファイルがそれにあたります。
なければ、fuel/core/config/db.php
をコピーして、fuel/app/config/[環境]/db.php
を作ります。
※[環境]にはdevelopment
やproduction
が入ります。
この中にredisの設定を追加します。
return array(
...
// redisの設定です。
'redis' => array(
'default' => array(
'hostname' => '127.0.0.1',
'port' => 6379,
'timeout' => null,
),
),
);
fuel/core/config/
にあるファイルのコメントにちゃんと説明が書いてくれているのでそれに従えばいいんですね。
勉強になりました。
他にもデータベースやredisのかわりにmemcachedを使ったりもできるよう。
それも機会があれば試してみたいです。
読んでくださってありがとうございます。
それではまた!