Zend Framework - Session 管理
-
简述
Session 是 Web 应用程序中非常重要的概念。它提供了在有限的时间段内将用户的数据保留在 Web 服务器中的选项。Zend Framework 提供了一个单独的组件zend-session来处理Session 信息。 -
安装 Session 组件
Session 组件可以使用下面指定的Composer进行安装 −composer require zendframework/zend-session
Session 组件
Zend 框架提供了六个组件来处理Session 管理。所有这些组件都在下面进行了解释 --
Zend\Session\Container − 用于读取和写入Session 信息的主 API。
-
Zend\Session\SessionManager − 它用于管理Session 的整个生命周期。
-
Zend\Session\Storage − 用于指定Session 数据在内存中的存储方式。
-
Zend\Session\SaveHandler − 它用于将Session 数据存储和检索到物理位置,如 RDBMS、Redis、MangoDB 等。
-
Zend\Session\Validator − 这用于通过交叉检查初始和后续请求的远程地址和用户代理来保护Session 不被劫持。
-
Zend\Session\Config\SessionConfig − 它用于配置Session 的行为方式。
默认配置足以处理Session 。使用上述组件,可以轻松处理Session 的所有方面。 -
-
Session 组件示例
让我们坚持以下几点来创建一个新页面来理解Zend Framework 中的Session 。默认情况下,创建Container类的实例来管理Session 就足够了。-
在TutorialController中创建新sessionAction。
-
初始化Container对象。
$c = new Container();
-
检查是否存在键count。如果该键不可用,请使用值 1 初始化count。如果可用,请递增该值,如以下代码所示。
if (!isset($c->count)) { $c->count = 0; } else { $c->count++; }
-
在 ViewModel 中注册计数。
-
在 myapp/module/Tutorial/view/tutorial/tutorial/session.phtml 中为Session 操作创建一个模板文件Session .phtml ,然后呈现count值。
-
刷新页面将增加 Session 中的count值。完整列表如下 −
TutorialController.phppublic function sessionAction() { $c = new Container(); if (!isset($c->count)) { $c->count = 0; } else { $c->count++; } $view = new ViewModel([ 'count' => $c->count, ]); return $view; }
Session .pthmlSession data, COUNT = <?= $this->count ?>
示例结果Session data, Count = 5
-