Phalcon - 会话管理


会话是服务器端信息存储,有助于用户与网站或 Web 应用程序交互。每个会话都使用唯一的会话 ID 进行定义,每当浏览器发出 HTTP 请求时,该会话 ID 就会传递到 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 - 创建一个会话控制器来实例化会话,以便可以适当地检索数据。

命令提示符

步骤 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); 
      } 
   } 
} 

上面的代码产生以下输出。

代码

删除会话

可以在 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();