文档/容器/服务/Session

会话

HLEB2 框架中,用户会话机制由 Session 服务提供—这是 PHP 会话管理函数的一个简单封装。

使用 Session 在控制器中(以及所有继承自 Hleb\Base\Container 的类)的示例,例如从会话中获取值:

// variant 1
use Hleb\Reference\SessionInterface;
$value $this->container->get(SessionInterface::class)->get('session_name');

// variant 2
$value $this->container->session()->get('session_name');

在应用程序代码中访问会话的示例:

// variant 1
use Hleb\Static\Container;
use 
Hleb\Reference\SessionInterface;
$value Container::get(SessionInterface::class)->get('session_name');

// variant 2
use Hleb\Static\Session;
$value Session::get('session_name');

通过 依赖注入 ,也可以通过接口 Hleb\Reference\Interface\Session 获取 Session 对象。

为简化示例,以下内容将仅包括通过 Hleb\Static\Session 进行访问。

在 Session 服务的标准实现中,其方法使用全局变量 $_SESSION 进行相应处理。


#get()

get() 方法按参数名检索会话数据。

use Hleb\Static\Session;

$value Session::get('session_name');

#set()

set() 方法允许按名称分配会话数据。

use Hleb\Static\Session;

Session::set('session_name''value');

#delete()

delete() 方法按名称删除会话数据。


#clear()

clear() 方法清除所有会话数据。


#all()

all() 方法返回包含所有会话数据的数组。


#getSessionId()

getSessionId() 方法返回当前会话标识符。
会话标识符可以在 /config/system.php 文件中的 'session.name' 配置项中修改,初始值为 'PHPSESSID'。


#异步模式

在异步使用框架时,Session 服务的方法以类似方式工作,但采用不同的设置和读取机制。

DB Cookies

页面翻译:chatgpt 4-o
返回顶部