会话是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();
- 检查是否存在任意键计数。如果该键不可用,则使用值1初始化计数。如果可用,则按以下代码所示递增该值。
if (!isset($c->count)) { $c->count = 0; } else { $c->count++; }
- 在ViewModel中注册计数。
- 在myapp / module / Tutorial / view / tutorial / tutorial / session.phtml中为– sessionAction,session.phtml创建一个模板文件,然后呈现计数值。
- 刷新页面将增加会话中的计数值。完整的清单如下-
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
作者:terry,如若转载,请注明出处:https://www.web176.com/zendframework/267.html