6_2:session
前置知识
1、可以直接使用 think\facade\Session来操作session
2、tp6.0 不支持原生$_SESSION数组 和 所有 session_ 开头的函数
3、只能通过 Session 类或助手函数来操作
4、会话数据统一在当前请求解释的时候统一写入,所有不要在session写入操作之后执行 exit 等中断操作,否则会导致session数据写入失败。
5、6.0的session类可以很好的支持 Swoole / Workman 等环境
6、尽量避免把对象保存到 session 会话
7、Request类可以获取session 不支持写入session
8、多应用session默认是跨应用的,也就是会话共享,可以为每个应用配置不同的前缀 prefix。
9、session文件默认保存在 runtime/session/目录下
10、
一 常用操作
1)设置判断等
1、设置session Session::set('变量名','变量值');
2、设置闪存数据 Session::flash('变量名','变量值');
3、判断session Session::has('变量名');
4、删除session Session::delete('变量名');
5、取值并删除 Session::pull('变量名');
6、清空所有session值 Session::clear();
7、清除当前请求有效的session Session::flush(); //这个没有理解
2)获取值
1、获取单个 Session::get('变量名','默认值');//第二个参数省略 返回null
2、获取全部 Session::all();
3、获取单个 Request.session('变量名','默认值');
4、获取全部 Request.session();
二 助手函数
session('变量名','变量值'); 设置
session('变量名'); 获取 [ 第二个参数不能设置默认值 没有就是NULL ]
session('?变量名'); 判断
session('变量名',null); 删除
session(null); 删除所有
三 设置独立会话
多应用默认情况下session是跨应用的,就是会话共享,希望独立会话可以为每个应用配置前缀 prefix
四 session驱动
默认 session 驱动采用文件缓存, 支持如下配置
path 文件保存路径
data_compress 是否压缩
gc_divisor GC回收概率
gc_probability GC回收概率
五 Redis 缓存做为 session
用到的时候再查手册
六 自定义驱动
一时半会用不到
七 配置文件
type session类型( File 或者 Cache )
store 当type设置为cache类型的时候指定存 储标识
expire session过期时间(秒)必须大于0
var_session_id 请求session_id变量名
name session_name
prefix session前缀
serialize 序列化方法
八 序列换
1、会话数据保存(请求结束)的时候会自动序列化,并在读取的时候自动反序列化。默认使用的是serialize/unserialize ,你可以自定义序列换机制。 2、在配置文件中设置为 JSON 序列换 'serialize' => ['json_encode', 'json_decode'], 3、应尽量避免把对象保存到 Session 会话

浙公网安备 33010602011771号