laravel框架(会话控制【记忆】和缓存操作【记忆】)

会话控制(记忆)

Laravel项目中,会话控制有两种方法:1是利用会话控制方法控制类实现会话操作
2是直接将用户的会话控制操作封装成一个auth认证类
常见应用-增删改查
session默认存到文件中
session文件的目录:
laravel框架(会话控制【记忆】和缓存操作【记忆】)_第1张图片

使用session类

控制器头部引用use lIIuminate\Support\Facades\Session;
由于session类在app.php中已经定义好别名,所以在控制器中引入的时候可以直接use Session
session的常用方法:
Session::put(‘key’,‘value’); Session中存储一个变量
$value=Session::get(‘key’); Session中获取一个变量

$value=Session::get(‘key’,‘default’); Session中获取一个变量或返回一个默认值(如果变量不存在)
$value=Session::get(‘key’,function(){ return ‘default’; });
Session::all(); Session中获取所有变量
Session::has(‘users’) 检查一个变量是否在Session中存在
Session::forget(‘key’); Session中删除一个变量
Session::flush(); Session中删除所有变量

补充:session方法也可以在视图中使用,如:{{ Session::get(‘code’) }};

案例:编写方法使用上述的语法格式

laravel框架(会话控制【记忆】和缓存操作【记忆】)_第2张图片
在后期如果使用laravel框架自带的验证功能模块(auth)的话,则session就可以不需要使用了。
另外,在laravel框架中还支持快捷函数session()
,也可以设置和使用session的。
两个语法:
1:设置session
session([key=>value]);
2:获取session的值
session(key);

缓存操作(记忆)

laravel为不同的缓存系统提供了统一的API(在框架中的写法)。缓存配置位于config/cache.php。在该文件中你可以指定在应用中默认使用哪个缓存驱动。laravel目前支持主流的缓存后端如Memcached和Redis等
主要方法:
Cache::put()
Cache::get()
Cache::add()
Cache::pull()
Cache::forever()
Cache::forget()
Cache::has()
系统默认是使用文件缓存,其缓存文件存储的位置位于(storage\framework\cache\data)

1.设置缓存

语法:Cache::put(‘key’,‘value’,$mintues);
key:键
value:值
$minutes:有效期,单位是分钟
注意:如果该键已经存在,则直接覆盖原来的键,有效期必须设置。

语法:Cache::add(‘key’,‘value’,$mintues);
key:键
value:值
$minutes:有效期,单位是分钟
add方法只会在缓存项不存在的情况下添加数据到缓存,如果数据被成功添加到缓存返回true,否则返回false:(并不会覆盖之前的数据)

永久储存数据
forever方法用于持久化存储数据到缓存,这些值必须通过forget方法手动从缓存中删除;
cache::forever(‘key’,‘value’); 永久储存并不是真的永久,只不过其截止的时间是比较大的值(到2286年)

2.获取缓存数据

cache门面的get方法用于从缓存中获取缓存项,如果缓存项不存在,返回null。如果需要的话你可以传递第二个参数到get方法指定缓存项不存在时返回的自定义默认值:
$value=cache::get(‘key’); 获取指定的key值
$value=cache::get(‘key’,‘default’); 获取指定的key值,如果不存在,则使用默认值
可以传递一个匿名函数作为默认值,如果缓存项不存在的话闭包的结果将会被返回。传递匿名函数允许你可以从数据库或其他外部服务获取默认值:
$value=cache::get(‘key’,function(){
return DB::table(…)->get();
});
检查缓存项是否存在
has方法用于判断缓存项是否存在:
if(cache::has(‘key’)){
//
}

3.删除缓存操作

语法:$value=cache::pull(‘key’); **从缓存中获取缓存项然后删除,如果缓存项不存在的话返回null,一般设置一次性的存储的数据
cache::forget(‘key’); 使用forget方法从缓存中移除缓存项数据
cache::flush(); 使用flush方法清除所有缓存,并且删除对应的目录
4.缓存数值增加/减少(了解)
increment和decrement方法可用于调整缓存中的
整型
数值。这两个方法都可以接收第二个参数来指明缓存项数增加和减少的数目:一般会用作计数器
cache::increment(‘key’);
cache::increment(‘key’, $amount);
cache::decrement(‘key’);
cache::decrement(‘key’, $amount);

4.获取并储存【重点】access_token 2000次

有时候你可能想要获取缓存项,但如果请求的缓存项不存在时给他存储一个默认值。例如,你可能想要从缓存中获取所有用户,或者如果它们不存在的话,从数据库获取它们并将其添加到缓存中,你可以通过使用cache::remember方法实现
$value=cache::remember(‘key’, $minutes,function(){
return DB::table(‘users’)->get(); //获取方式
});

如果缓存项不存在,传递给remember方法的闭包被执行并且将结果存放到缓存中。

如果获取users值是不存在,则可以通过后续的回调代码去执行对应的操作获取其值,并返回,同时会设置一个指定有效期的操作,方便下次继续使用。比较典型的操作就是在获取微信的access_token的时候可以使用。原因是access_token本身一天只有2000次的配额,而其有7200s的有限期,在有效期内可以不用去刷新请求。

你可能感兴趣的:(笔记)