ginkgo


Session 会话

Session 功能由 ginkgo\Session 类配合 Session 驱动类一起完成,内置 file、db 驱动。


Session 初始化

Session 会在第一次调用 Session 类的时候按照配置参数自动初始化:

'session' => array(
    'autostart'     => true, //自动开始
    'name'          => '', //Session ID 名称
    'type'          => 'file', //类型 (可选 db,file)
    'path'          => '', //保存路径 (默认为 /runtime/session)
    'prefix'        => 'ginkgo_', //前缀
    'cookie_domain' => '',
    'life_time'     => 1200, // session 生存时间
),

如果使用上述配置参数,无需任何操作就可以直接调用 Session 类的相关方法,例如:

Session::set('name', 'baigo');
Session::get('name');

或者调用 init 方法进行初始化:

$config = array(
    'autostart'     => true, //自动开始
    'name'          => '', //Session ID 名称
    'type'          => 'file', //类型 (可选 db,file)
    'path'          => '', //保存路径 (默认为 /runtime/session)
    'prefix'        => 'ginkgo_', //前缀
    'cookie_domain' => '',
    'life_time'     => 1200, // session 生存时间
),

Session::init($config);

设置参数

默认支持的 Session 设置参数包括:

参数 描述 默认
autostart 是否自动开启 false
name Session ID 名称
type 类型 (目前可选 db, file) file
path 保存路径 (仅对 file 类型有效) /runtime/session
prefix Session 前缀 ginkgo_
cookie_domain cookie_domain
life_time 生命周期(单位为 秒) 1200

type 参数支持完整命名空间定义,默认采用 ginkgo\session\driver 作为命名空间,如果使用自己扩展的驱动,可以配置为:

'session' => array(
    'type'   => 'org\session\File',
    ...
);

表示采用 org\session\File 类作为引擎,而不是默认的 ginkgo\session\driver\file

如果做了 Session 驱动扩展,可能有些参数不一定有效。


基本操作

  • 赋值

    Session::set('name', $value);
    Session::set('name', $value, 'prefix'); // 前缀为 prefix
    
  • 取值

    Session::get('name');
    Session::get('name', 'prefix'); // 取得前缀为 prefix 的值
    

    如果 name 值不存在,则默认返回空。

  • 删除

    Session::delete('name');
    
  • 前缀

    Session::prefix('prefix');
    Session::prefix(); // 取得前缀
    

二级数组

支持 Session 的二维数组操作,例如:

// 赋值(当前作用域)
Session::set('name','baigo.item');
// 取值(当前作用域)
Session::get('name', 'item');
// 删除(当前作用域)
Session::delete('name', 'item');