webiik / session
Session 提供了一种安全的方式来处理会话。
Requires
- php: >=7.2
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();