## `Session` 组件 Session(会话)组件可以让你保持一个用户的 "状态" ,并跟踪他在浏览你的网站时的活动。 >[danger] Session 组件暂时只支持 Redis ## 组件 使用 [composer]([https://www.phpcomposer.com/](https://www.phpcomposer.com/)) 安装: ~~~ composer require mix/session ~~~ ## 依赖注入配置 - [beans/session.php](https://github.com/mix-php/mix-skeleton/tree/v2.1/manifest/beans/session.php) ## 使用范例 - 用户登陆控制器方法: ~~~ /** * 登陆 * @param ServerRequest $request * @param Response $response * @return Response */ public function login(ServerRequest $request, Response $response) { /* 验证账号密码成功后 */ // 创建session /** @var Session $session */ $session = context()->getBean('session', [ 'request' => $request, 'response' => $response, ]); $session->createId(); $payload = [ 'uid' => 1088, 'openid' => 'yZmFiZDc5MjIzZDMz', 'username' => '小明', ]; $session->set('payload', $payload); // 响应 $data = [ 'message' => 'Login success!', ]; return ResponseHelper::view($response, 'login.index', $data); } ~~~ - 效验 Session (在中间件中校验): [>> SessionMiddleware::class 源码 <<](https://github.com/mix-php/mix-skeleton/tree/v2.1/app/Web/Middleware/SessionMiddleware.php) ## 全部方法 | 方法 | 描述 | | --- | --- | | createId() : string | 创建session_id | | set(string $name, $value) : bool | 赋值 | | get(string $name, $default = null) : mixed | 取值 | | getAttributes() : array | 取所有值 | | delete(string $name) : bool | 删除 | | clear() : bool | 清除session | | has(string $name) : bool | 判断是否存在 | | getId() : string | 获取session_id |