fuelphpでのsession

またまたfuelphp。(fuelphp1.7)
最近fuelをいじっているので、忘れないためにメモメモ。

fuelphpでのsessionはcodeigniterと同じくデフォルトではcookieにデータが書き込まれます。
そして、セッション情報は暗号化されてCookieに埋め込まれるという点も同じ。
セッションが多くなればなるほどcookieの情報が多くなるので注意してください。
多くなる恐れがある場合は、別のドライバを使用しましょう。

ドライバの種類は、cookie,file,db,memcached,redis があります。
別のドライバを利用したい場合は、APP_PATH/config/session.phpというファイルを作成し
以下の様な形式で保存し、'driver'部分を変更します。

<?php
return array(
    'auto_initialize'    => true,
    'driver'        => 'redis',
    'match_ip'        => false,
    'match_ua'        => true,
    'cookie_domain'     => '',
    'cookie_path'        => '/',
    'cookie_http_only'    => null,
    'expire_on_close'    => false,
    'expiration_time'    => 7200,
    'rotation_time'        => 300,
    'flash_id'        => 'flash',
    'flash_auto_expire'    => true,
    'post_cookie_name'    => '',
 
    'cookie'    => array(
        'cookie_name'=> 'fuelcid',
    ),
 
    'file'    => array(
        'cookie_name'        => 'fuelfid',
        'path'            => '/tmp',
        'gc_probability'    => 5
    ),
 
    'memcached'    => array(
        'cookie_name'=> 'fuelmid',
        'servers'    => array(    
          'default' => array('host' => '127.0.0.1', 'port' => 11211, 'weight' => 100)
      ),
    ),
 
    'db'     => array(
        'cookie_name'   => 'fueldid',    
        'database'      => null,
        'table'         => 'sessions',
        'gc_probability'    => 5
    ),
 
    'redis'    => array(
        'cookie_name'        => 'fuelrid',
        'database'            => 'default'
    )
);


もちろんのことですが、memcached,db,redisはそれぞれがサーバーにインストールされていないとエラーが起こりますので注意してください。



参考引用:FuelPHPのSessionクラスについてまとめてみた。