📅  最后修改于: 2020-10-16 07:46:01             🧑  作者: Mango
会话是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