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