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: 创建会话控制器,用于实例化会话,以便可以适当地检索数据。

Command Prompt

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

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

Code

删除会话


可以在 Phalcon 中销毁会话或取消设置会话中的某些变量值。

以下是在会话中取消设置变量值的语法。

$this->session->remove(<variable-name>);

如上例所示,会话中创建的变量名是“data-content”,可以使用以下代码删除。

public function removeAction() { 
    // 删除关联会话的会话变量
    $this->session->remove("data-content");
}

以下是销毁完整会话的语法。

$this->session->destroy();