我将会话数据存储在数据库中。在类 Session 中是用于存储和检索数据的存储函数。
现在我的问题是:
我是否需要在运行时配置中更改 session.save_handler 的值,因为默认设置为“文件”,或者函数 session_set_save_handler 是否覆盖(忽略)它?
如果 session.auto_start 被启用,那么使用哪个处理程序呢?
这是我的课堂会话的最小化版本:
class Session
{
public function __construct($registry, $sessionhash = '', $userid = 0, $password = '')
{
$this->config = cl_Config::instance();
$this->db = cl_Database::instance($this->config);
$this->hasher = cl_Hasher::instance();
// Register this object as the session handler
session_set_save_handler(
array( $this, "open" ),
array( $this, "close" ),
array( $this, "read" ),
array( $this, "write"),
array( $this, "destroy"),
array( $this, "gc" )
);
function open( $save_path, $session_name )
{
...
return true;
}
function close( $save_path, $session_name )
{
...
return true;
}
function read( $id )
{
...
}
function write( $id, $data )
{
...
return true;
}
...