引言
我们知HTTP请求是没有状态的,两个请求之间没有直接的关联关系。但大多数情况下, 我们需要保持用户的会话间数据的连续性,这时,为了数据安全起见, 有必要在服务器上临时存储一些上下文数据了。
这就是 session 设计的目的。
代码时间
在laravel中可以使用系统提供的Session类方便地操作会话数据,而且其存储介质也是抽象出来的, 可以无缝衔接,只是驱动更换一下罢了。
框架内Session支持的驱动类型如下:
- file 存储在 storage/framework/sessions 目录
- cookie 存储在安全加密的 cookie 中
- database 创建专门的表,存储在数据库内
- memcached, redis 存储在这些内存数据库内
- array 每次请求有效,用完即焚,适合测试使用
session 数据以简单的键值方式存储,所以读取某个键名的值,只需
session()->get('user_id');
复制代码
其中函数 session() 是laravel系统提供的助手函数。我们看一下源码的定义:
function session($key = null, $default = null)
{
if (is_null($key)) {
return app('session');
}