webiik/session

Session 提供了一种安全的方式来处理会话。

1.0 2019-02-28 21:18 UTC

This package is auto-updated.

Last update: 2024-09-29 05:02:27 UTC


README

会话

Session 提供了一种安全的方式来处理会话。

安装

composer require webiik/session

示例

$session = new \Webiik\Session\Session();
$session->setToSession('foo', 'bar');
if ($session->isInSession('foo')) {
    echo 'Session foo has value: ' . $session->getFromSession('foo');
}
$session->delFromSession('foo');

注意: 如果可能的话,在进行耗时操作之前,不要忘记调用 session_write_close()。否则,您的应用程序的用户可能会遇到严重的延迟。

配置

setDomain

setDomain(string $domain): void

setDomain() 设置会话cookie可用的(子)域名。

$session->setDomain('mydomain.tld');

setUri

setUri(string $uri): void

setUri() 设置服务器上会话cookie可用的路径。

$session->setUri('/');

setSecure

setSecure(bool $bool): void

setSecure() 表示会话cookie应仅通过客户端的HTTPS安全连接传输。默认值为 FALSE

$session->setSecure(true);

setHttpOnly

setHttpOnly(bool $bool): void

setHttpOnly() 表示会话cookie应仅通过HTTP协议访问。默认值为 FALSE

$session->setHttpOnly(true);

setSessionName

setSessionName(string $name): void

setSessionName() 设置会话名称,该名称用作cookie名称。默认值为 PHPSESSID

$session->setSessionName('mySessionName');

setSessionDir

setSessionDir(string $path): void

setSessionDir() 定义传递给保存处理器的参数。如果您选择默认的文件处理器,则此路径是创建文件的路径。

$session->setSessionDir(__DIR__ . '/tmp');

setSessionGcProbability

setSessionGcProbability(int $sessionGcProbability): void

setSessionGcProbability()setSessionGcDivisor() 结合使用,用于管理启动gc(垃圾收集)例程的概率。默认值为 1。

$session->setSessionGcProbability(1);

setSessionGcDivisor

setSessionGcDivisor(int $sessionGcDivisor): void

setSessionGcDivisor()setSessionGcProbability() 结合定义了在每次会话初始化时启动gc(垃圾收集)过程的概率。该概率通过使用GsProbability/GcDivisor计算得出,例如,1/100 表示在每次请求上有1%的概率启动GC过程。GcDivisor的默认值为100。

$session->setSessionGcDivisor(100);

setSessionGcLifetime

setSessionGcLifetime(int $sec): void

setSessionGcLifetime() 指定数据被视为“垃圾”并可能被清理后的秒数。垃圾收集可能在会话开始时发生(取决于 setSessionGcProbability()setSessionGcDivisor())。

$session->setSessionGcLifetime(1440);

注意: 如果不同的脚本有不同的gcLifetime值但共享相同的会话数据存储位置,则具有最小值的脚本将清理数据。在这种情况下,请使用此指令与 setSessionDir() 一起使用。

添加

setToSession

setToSession(string $key, $value): void

setToSession()$value 设置为给定 $key 的会话中。

$session->setToSession('foo', 'bar');

addToSession

addToSession(string $key, $value): void

addToSession()$value 添加到给定 $key 的会话中。

$session->addToSession('foo', 'bar');

sessionStart

sessionStart(): bool

sessionStart() 启动会话。在您需要直接操作 $_SESSION 全局变量时使用它。

$session->sessionStart();

sessionRegenerateId

sessionRegenerateId(): void

sessionRegenerateId() 使用当前会话信息替换当前会话ID,并保留原始会话。原始会话也被保留。

$session->sessionRegenerateId();

检查

isInSession

isInSession(string $key): bool

isInSession() 确定是否在会话中设置了 $key,并且其值不是 NULL

$session->isInSession('foo');

获取

getFromSession

getFromSession(string $key)

getFromSession() 通过 $key 从会话中获取值。

$session->getFromSession('foo');

getAllFromSession

getAllFromSession()

getAllFromSession() 返回会话中存储的所有值。

$session->getAllFromSession();

删除

delFromSession

delFromSession(string $key): void

delFromSession() 通过 $key 从会话中删除值。

$session->delFromSession('foo');

dellAllFromSession

dellAllFromSession(): void

dellAllFromSession() 从会话中删除所有值。

$session->dellAllFromSession();

sessionDestroy

sessionDestroy(): bool

sessionDestroy() 从会话中删除所有值并取消设置会话。

$session->sessionDestroy();

资源