Phalcon - 会话管理
会话是服务器端信息存储,有助于用户与网站或 Web 应用程序交互。每个会话都使用一个唯一的会话 ID 定义,每当浏览器发出 HTTP 请求时,该 ID 就会传递给 Web 服务器。每次会话 ID 都会与内部数据库配对,以便检索所有存储的变量。
Phalcon 中的会话
Phalcon 使用包含包装器的会话组件来访问会话数据。
以下是 Phalcon 中的功能 −
会话数据可以与同一域上的其他组件隔离。
根据应用程序的需求,可以借助会话适配器更改会话值。
在 Phalcon 中启动会话
所有会话活动都与适配器文件相关联,这些文件在 Web 应用程序的 /config 文件夹内的 Services.php 文件中声明。
/**
* 启动会话某个组件第一次请求会话服务
*/
$di->setShared('session', function () {
$session = new SessionAdapter();
$session->start();
return $session;
});
创建会话
步骤 1 − 创建一个会话控制器,用于实例化会话,以便可以适当地检索数据。
步骤 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);
}
}
}
上述代码产生以下输出。
删除会话
在 Phalcon 中,可以销毁会话或取消设置会话中的某些变量值。
以下是在会话中取消设置变量值的语法。
$this->session->remove(<variable-name>);
如上例所示,会话中创建的变量名称为 "data-content",可以使用以下代码将其删除。
public function removeAction() {
// 删除与会话关联的会话变量
$this->session->remove("data-content");
}
;
以下是销毁完整会话的语法。
$this->session->destroy();

