Phalcon - 会话管理



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

Phalcon 中的会话

Phalcon 使用会话组件,其中包括访问会话数据的包装器。

以下是 Phalcon 中的功能:

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

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

在 Phalcon 中启动会话

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

/** 
   * Start the session the first time some component requests the session service 
*/ 
$di->setShared('session', function () { 
   $session = new SessionAdapter(); 
   $session->start();  
   return $session; 
});

创建会话

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

Command Prompt

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

<?php  

class SessionController extends \Phalcon\Mvc\Controller { 
   public function indexAction() { 
      //Define a session variable 
      $this->session->set("user-name", "Omkar"); 
      
      //Check if the variable is defined 
      if ($this->session->has("user-name")) { 
         //Retrieve its value 
         $name = $this->session->get("user-name"); 
         echo($name); 
      } 
   } 
} 

以上代码产生以下输出。

Code

删除会话

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

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

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

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

public function removeAction() { 
   // Remove a session variable with associated session 
   $this->session->remove("data-content"); 
}
;

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

$this->session->destroy(); 
广告