- Zend Framework 教程
- Zend Framework - 首页
- Zend Framework - 简介
- Zend Framework - 安装
- 框架应用程序
- Zend Framework - MVC 架构
- Zend Framework - 概念
- Zend Framework - 服务管理器
- Zend Framework - 事件管理器
- Zend Framework - 模块系统
- 应用程序结构
- Zend Framework - 创建模块
- Zend Framework - 控制器
- Zend Framework - 路由
- Zend Framework - 视图层
- Zend Framework - 布局
- 模型和数据库
- 不同的数据库
- 表单和验证
- Zend Framework - 文件上传
- Zend Framework - Ajax
- Cookie 管理
- 会话管理
- Zend Framework - 身份验证
- 电子邮件管理
- Zend Framework - 单元测试
- Zend Framework - 错误处理
- Zend Framework - 工作示例
- Zend Framework 有用资源
- Zend Framework - 快速指南
- Zend Framework - 有用资源
- Zend Framework - 讨论
Zend Framework - 会话管理
会话在 Web 应用程序中是一个非常重要的概念。它提供了将用户数据在 Web 服务器上持久化一段时间的功能。Zend 框架提供了一个单独的组件 **zend-session** 来处理会话信息。
安装会话组件
会话组件可以使用 **Composer** 安装,如下所示:
composer require zendframework/zend-session
会话组件
Zend 框架提供了六个组件来处理会话管理。所有这些组件都已在下面解释:
**Zend\Session\Container** - 读取和写入会话信息的主要 API。
**Zend\Session\SessionManager** - 用于管理会话的整个生命周期。
**Zend\Session\Storage** - 用于指定会话数据如何在内存中存储。
**Zend\Session\SaveHandler** - 用于将会话数据存储和检索到物理位置,如 RDBMS、Redis、MangoDB 等。
**Zend\Session\Validator** - 用于通过交叉检查初始和后续请求的远程地址和用户代理来保护会话免受劫持。
**Zend\Session\Config\SessionConfig** - 用于配置会话的行为方式。
默认配置足以使用会话。使用上述组件,可以轻松处理会话的所有方面。
会话组件示例
让我们遵循以下几点创建一个新页面来理解 Zend 框架中的会话。默认情况下,创建 **Container** 类的实例足以管理会话。
在 **TutorialController** 中创建一个新的操作 **sessionAction**。
初始化一个 **Container** 对象。
$c = new Container();
检查任意键 **count** 是否存在。如果该键不可用,则将 **count** 初始化为 1。如果可用,则递增其值,如下面的代码所示。
if (!isset($c->count)) { $c->count = 0; } else { $c->count++; }
在 ViewModel 中注册 count。
为 sessionAction 创建一个模板文件 - session.phtml,位于 myapp/module/Tutorial/view/tutorial/tutorial/session.phtml,然后渲染 **count** 值。
刷新页面将增加会话中 **count** 的值。完整的列表如下所示:
TutorialController.php
public function sessionAction() { $c = new Container(); if (!isset($c->count)) { $c->count = 0; } else { $c->count++; } $view = new ViewModel([ 'count' => $c->count, ]); return $view; }
session.pthml
Session data, COUNT = <?= $this->count ?>
示例结果
Session data, Count = 5