Phalcon - 会话管理

会话是服务器端信息存储,有助于用户与网站或Web应用程序进行交互.每个会话都使用会话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步 : 创建一个会话控制器来实例化一个会话,以便可以适当地检索数据.

命令提示符

第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();