Session
Session
在使用Session之前,需要开启初始化,在中间件文件middleware.php:
// Session初始化
\think\middleware\SessionInit::class
TP6.0不支持原生$_SESSION的获取方式,也不支持 session_开头的函数,直接使用::set()和::get()方法去设置 Session的存取:
Session::set('user', 'Mr.Lee'); //设置 session,参数 1名称,参数 2值
Session::get('user'); //读取 session,参数为名称,不存在时返回null
Session::get('name', '') //name不存在时返回空
Session::all() //读取 session所有内容
Request::session('user'); //读取 session,参数为名称
Request::session(); //读取 session所有内容
::has()判断是否赋值,::delete()删除,::pull()取值后删除:
Session::has('user');
Session::delete('user');
Session::pull('user'); //不存在则返回 null
::clear()清空整个session:
Session::clear('');
::flash()方法,设置闪存数据,只请求一次有效的情况,再请求会失效:
Session::flash('user','Mr.Lee')
二维助手函数
二维操作,就是对象和数组的调用方式,如下:
// 赋值(当前作用域)
Session::set('obj.user','Mr.Lee');
// 判断(当前作用域)是否赋值
Session::has('obj.user');
// 取值(当前作用域)
Session::get('obj.user');
// 删除(当前作用域)
Session::delete('obj.user');
助手函数,更加方便操作,如下:
//赋值
session('user', 'Mr.Wang');
//has判断
session('?user');
//delete删除
session('user', null);
//清理全部
session(null);
//输出
echo session('user');
Cookie
Cookie
Cookie是客户端存储,默认情况下是开启初始化的,在config/cookie.php。
::set()方法,创建一个最基本的 cookie,可以设置前缀、过期时间、数组等:
Cookie::set('user', 'Mr.Lee'); //临时保存,关闭浏览器消失
Cookie::set('user', 'Mr.Lee', 3600); //3600秒
Request::cookie('user');
Request::cookie();
::forever()方法,永久保存 Cookie(就是十年的意思):
Cookie::forever('user', 'Mr.Lee');
::has()判断是否存在,:get()取值,::delete()删除 cookie:
Cookie::has('user');
Cookie::get('user');
Cookie::delete('user');
助手函数
助手函数,更加方便操作,如下:
echo cookie('user'); //输出
cookie('user', 'Mr.Lee', 3600); //设置
cookie('user', null); //删除
缓存功能
缓存功能
系统内置了很多类型的缓存,除了 File,其它均需要结合相关产品。这里主要演示File文本缓存。配置文件cache.php进行缓存配置,默认生成在runtime/cache目录。
::set()方法,可以设置一个缓存,参数三为过期时间:
Cache::set('user', 'Mr.Lee');
Cache::set('user', 'Mr.Lee', 3600);
::has()方法,判断缓存是否存在,返回布尔值:
Cache::has('user');
::get()方法,从缓存中获取到相应的数据,无数据返回null:
Cache::get('user');
::inc()和::dec()实现缓存数据的自增和自减操作:
Cache::inc('num');
Cache::inc('price', 3);
Cache::dec('num');
Cache::dec('price', 3);
::push()实现缓存的数组数据追加的功能:
Cache::set('arr', [1,2,3]);
Cache::push('arr', 4);
::delete()方法,可以删除指定的缓存文件:
Cache::delete('user');
::pull()方法,先获取缓存值,然后再删除掉这个缓存,无数据返回null:
Cache::pull('user');
::remember()方法,如果数据不存在,则写入数据,可以依赖注入:
Cache::remember('start_time', time());
Cache::remember('start_time', function (Request $request) {});
::clear()方法,可以清除所有缓存:
Cache::clear();
::tag()标签,可以将多个缓存归类到标签中,方便统一管理,比如清除:
Cache::tag('tag')->set('user', 'Mr.Lee');
Cache::tag('tag')->set('age', 20);
Cache::tag('tag')->clear();
助手函数的使用:cache():
//设置缓存
cache('user', 'Mr.Lee', 3600);
//输出缓存
echo cache('user');
//删除指定缓存
cache('user', null);