Phalcon - 会话管理

会话是服务器端信息存储,有助于用户与网站或 Web 应用程序交互。每个会话都使用一个唯一的会话 ID 定义,每当浏览器发出 HTTP 请求时,该 ID 就会传递给 Web 服务器。每次会话 ID 都会与内部数据库配对,以便检索所有存储的变量。

Phalcon 中的会话

Phalcon 使用包含包装器的会话组件来访问会话数据。

以下是 Phalcon 中的功能 −

  • 会话数据可以与同一域上的其他组件隔离。

  • 根据应用程序的需求,可以借助会话适配器更改会话值。

在 Phalcon 中启动会话

所有会话活动都与适配器文件相关联,这些文件在 Web 应用程序的 /config 文件夹内的 Services.php 文件中声明。

/**
* 启动会话某个组件第一次请求会话服务
*/
$di->setShared('session', function () {
    $session = new SessionAdapter();
    $session->start();
    r​​eturn $session;
});

创建会话

步骤 1 − 创建一个会话控制器,用于实例化会话,以便可以适当地检索数据。

Command Prompt

步骤 2 − 创建一个具有名称和值的会话。

<?php  

class SessionController extends \Phalcon\Mvc\Controller { 
   public function indexAction() { 
      //定义会话变量
      $this->session->set("user-name", "Omkar"); 
      
      //检查变量是否已定义 
      if ($this->session->has("user-name")) { 
         //检索其值
         $name = $this->session->get("user-name"); 
         echo($name); 
      } 
   } 
} 

上述代码产生以下输出。

Code

删除会话

在 Phalcon 中,可以销毁会话或取消设置会话中的某些变量值。

以下是在会话中取消设置变量值的语法。

$this->session->remove(<variable-name>);

如上例所示,会话中创建的变量名称为 "data-content",可以使用以下代码将其删除。

public function removeAction() {
    // 删除与会话关联的会话变量
    $this->session->remove("data-content");
}
;

以下是销毁完整会话的语法。

$this->session->destroy();