默认设置上,ThinkPHP使用文件进行session保存
而我们可以自定义自己的session保存模式
1.使用数据库存储SESSION
①找到ThinkPHP->extend->Driver->session->SessionDb.class.php文件,里面有一个被注释的创建数据表sql语句,
我们需要做的就是在数据库中创建这个session表(注意,他是默认以think_为表前缀,如果要使用你自己定义的表前缀,记得替换);
②在项目的config文件中加入一下配置项"'SESSION_TYPE' => 'Db'",则将session保存模式改为数据库模式;
③按照平常的操作session的方式即可
2.自定义session存储模式
①在项目config文件中加入一下配置项"SESSION_TYPE' => 'Redis'"(假设使用Redis进行保存)
②在ThinkPHP->extend->Driver->session目录下建立文件SessionRedis.class.php文件(注意名字对应为Redis);
③仿照SessionDb.class.php,写入具体操作,具体如下
<?php
class SessionRedis{
public function execute(){
session_set_save_handler(array(&$this,"open"),
array(&$this,"close"),
array(&$this,"read"),
array(&$this,"write"),
array(&$this,"destroy"),
array(&$this,"gc"));
}
public function open($savePath, $sessName){
echo 'Redis open';
}
public function close(){
echo 'Redis close';
}
public function read($sessID){
echo 'Redis read';
}
public function write($sessID,$sessData){
echo 'Redis write';
}
public function destroy($sessID){
echo 'Redis destroy';
}
public function gc(){
echo 'gc';
}
}
?>