## `Session` 组件 Session(会话)组件可以让你保持一个用户的 "状态" ,并跟踪他在浏览你的网站时的活动。 | 类 | 调用 | | --- | --- | --- | Mix\Http\Session\HttpSession | app()->session | >[danger] Session 组件暂时只支持 Redis,使用前需先安装 Redis 数据库。 ## 依赖注入配置 [>> 到 GitHub 查看默认配置 <<](https://github.com/mix-php/mix/blob/master/applications/http/config/main_coroutine.php#L271) ## 使用范例 用户登陆控制器: ~~~ // 登陆方法 public function actionLogin() { /* 验证账号密码成功后 */ // 创建 sessionId app()->session->createSessionId(); // 保存会话信息 $userinfo = [ 'uid' => 1088, 'openid' => 'yZmFiZDc5MjIzZDMz', 'username' => '小明', ]; app()->session->set('userinfo', $userinfo); // 响应 return $this->render('login', ['message' => '新增成功']); } ~~~ 效验Session:在前置中间件中校验。 ~~~ // 前置中间件的 handle 方法 public function handle($callable, \Closure $next) { // 添加中间件执行代码 $userinfo = app()->session->get('userinfo'); if (empty($userinfo)) { // 跳转到首页 return app()->response->redirect('/'); } // 执行下一个中间件 return $next(); } ~~~ ## `set` 方法 变量赋值。 ~~~ app()->session->set('name', '小华'); ~~~ ## `get` 方法 获取变量的值。 ~~~ app()->session->get('name'); ~~~ >[info] name不存在时返回null。 ## `has` 方法 判断变量是否存在。 ~~~ app()->session->has('name'); ~~~ ## `delete` 方法 删除变量。 ~~~ app()->session->delete('name'); ~~~ ## `clear` 方法 清空全部变量。 ~~~ app()->session->clear(); ~~~ ## `getSessionId` 方法 获取SessionId。 ~~~ app()->session->getSessionId(); ~~~