Phalcon Session 管理
会话(Session)是服务器端信息存储,用于用户与网站进行交互,每个会话都由一个会话 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() { // 定义会话变量 $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();