📜  Zend框架-会话管理

📅  最后修改于: 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