ThinkPHP3.0完全开发手册
新版支持对session 的hander驱动,可以通过驱动更改session的管理机制。Session驱动扩展目录位于Extend/Driver/Session下面,命名规范是:
Session+驱动类名称(首字母大写)
并实现下面的驱动接口:
方法说明 |
接口方法 |
执行入口 |
execute () 并且在方法中调用session_set_save_handler函数指定hander操作机制 |
并建议添加下面的接口方法 |
|
打开Session |
open($savePath, $sessionName) |
关闭Session |
close() |
读取Session |
read($id) |
写入Session |
write($id, $data) |
删除Session |
destory($id) |
Session 过期回收 |
gc($maxlifetime) |
例如,下面我们实现了一个memcache类型的session hander驱动:
class SessionMemcache {
private static $lifetime = 0;
// open接口
public static function open() {
self::$lifetime = ini_get('session.gc_maxlifetime');
return true;
}
// read接口
public static function read($id) {
return memcached::get("sessions/{$id}");
}
// write接口
public static function write($id, $data) {
return memcached::set("sessions/{$id}", $data, self::$lifetime);
}
// destory接口
public static function destroy($id) {
return memcached::delete("sessions/{$id}");
}
// gc接口
public static function gc(){ return true; }
// close接口
public static function close(){ return true; }
public function __destruct() {
session_write_close();
}
}
要使用session驱动的话,需要设置SESSION_TYPE参数值为session驱动的名称,例如:
'SESSION_TYPE'=>'memcache', // 设置session类型为memcache
或者使用:
'SESSION_OPTIONS'=>array('type'=>'memcache'), //设置session类型为memcache