Class yii\web\CacheSession

继承yii\web\CacheSession » yii\web\Session » yii\base\Component » yii\base\BaseObject
实现ArrayAccess, Countable, IteratorAggregate, yii\base\Configurable
可用自版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/framework/web/CacheSession.php

CacheSession 使用缓存作为存储介质来实现会话(session)组件.

正在使用的缓存可以是任何应用程序缓存(cache)组件. 应用程序缓存(cache)组件的 ID 通过 $cache 指定, 默认为'cache'.

请注意, 根据定义, 高速缓存存储是易失性的, 这意味着存储在其上的数据可能被换出并丢失. 因此, 你必须确保此组件使用的缓存不是易失性的. 如果要使用数据库作为存储介质, 则 yii\web\DbSession 是一个更好的选择.

以下示例显示如何配置应用程序以使用 CacheSession: 将以下内容添加到components下的应用程序配置中:

'session' => [
    'class' => 'yii\web\CacheSession',
    // 'cache' => 'mycache',
]

公共属性

隐藏继承的属性

属性类型描述定义在
$allFlashes array Flash 消息 (key => message or key => [message1, message2]). 该属性是只读的. yii\web\Session
$behaviors yii\base\Behavior[] 附加到此组件的行为列表. 该属性是只读的. yii\base\Component
$cache yii\caching\CacheInterface|array|string 缓存对象或缓存对象的应用程序组件 ID. yii\web\CacheSession
$cacheLimiter string 当前缓存限制器. 该属性是只读的. yii\web\Session
$cookieParams array session cookie 参数. 该属性是只读的. yii\web\Session
$count integer session 变量的数量. 该属性是只读的. yii\web\Session
$flash string 标识 flash 消息的键. 请注意, Flash 消息和常规 session 变量共享相同的名称空间. 如果你的常规 session 变量使用相同的名称, 则此方法将覆盖其值. 该属性是只写的. yii\web\Session
$flashParam string 存储 flash 消息数据的 session 变量的名称. yii\web\Session
$gCProbability float 每次 session 初始化时启动 GC(垃圾收集)进程的概率(百分比). yii\web\Session
$handler SessionHandlerInterface|array 实现 SessionHandlerInterface 或配置数组的对象. yii\web\Session
$hasSessionId boolean 当前请求是否发送了 session ID. yii\web\Session
$id string 当前 session ID. yii\web\Session
$isActive boolean session 是否已开启. 该属性是只读的. yii\web\Session
$iterator yii\web\SessionIterator 遍历 session 变量的迭代器. 该属性是只读的. yii\web\Session
$name string 当前 session 名称. yii\web\Session
$savePath string 当前 session 的保存路径, 默认为/tmp. yii\web\Session
$timeout integer 此秒数后, 数据将被视为垃圾(garbage)并清除. 默认值为1440秒(或在 php.ini 中设置的session.gc_maxlifetime的值). yii\web\Session
$useCookies boolean|null 指示是否应使用 cookies 来存储 session ID 的值. yii\web\Session
$useCustomStorage boolean 是否使用自定义存储. 该属性是只读的. yii\web\CacheSession
$useStrictMode boolean 是否启用严格模式. 该属性是只读的. yii\web\Session
$useTransparentSessionID boolean 是否启用透明 sid 支持, 默认为false. yii\web\Session

受保护的属性

隐藏继承的属性

属性类型描述定义在
$_forceRegenerateId string|null 在启用useStrictMode且需要重新生成会话ID的情况下保存会话ID. yii\web\Session
$_originalSessionModule string|null 保留原始会话模块(再注册自定义处理程序之前), 以便在拥有自定义处理程序的Session组件之后使用没有自定义处理程序的Session组件时可以将其还原. yii\web\Session

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的指定的方法. yii\base\Component
__clone() 在通过克隆现有对象创建对象之后调用此方法. yii\base\Component
__construct() 构造函数. yii\base\BaseObject
__get() 返回组件属性的值. yii\base\Component
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\Component
__set() 设置组件属性的值. yii\base\Component
__unset() 将组件属性设置为null. yii\base\Component
addFlash() 添加一个 flash 消息. yii\web\Session
attachBehavior() 将行为附加到此组件. yii\base\Component
attachBehaviors() 将行为列表附加到组件. yii\base\Component
behaviors() 返回此组件应该具有的行为列表. yii\base\Component
canGetProperty() 返回一个值, 指示属性是否可读取. yii\base\Component
canSetProperty() 返回一个值, 指示属性是否可设置. yii\base\Component
className() 返回此类的完全限定名称. yii\base\BaseObject
close() 结束当前 session 并存储 session 数据. yii\web\Session
closeSession() Session 关闭处理程序. yii\web\Session
count() 返回 session 中的项目数量. yii\web\Session
destroy() 释放所有 session 变量, 并销毁注册到 session 的所有数据. yii\web\Session
destroySession() 会话(session)销毁处理程序. yii\web\CacheSession
detachBehavior() 从组件中分离一个行为. yii\base\Component
detachBehaviors() 分离组件中的所有行为. yii\base\Component
ensureBehaviors() 确保在 behaviors() 中声明的行为已附加到此组件. yii\base\Component
gcSession() Session GC(垃圾收集)处理程序. yii\web\Session
get() 返回带有 session 变量名称的 session 变量值. yii\web\Session
getAllFlashes() 返回所有的 flash 消息. yii\web\Session
getBehavior() 返回指定的行为对象. yii\base\Component
getBehaviors() 返回附加到此组件的所有行为. yii\base\Component
getCacheLimiter() 返回当前的缓存限制器. yii\web\Session
getCookieParams() 返回 session cookie 参数. yii\web\Session
getCount() 返回 session 中的项目数量. yii\web\Session
getFlash() 返回一个 flash 消息. yii\web\Session
getGCProbability() 获取在每次 session 初始化时启动 GC(垃圾收集)进程概率(百分比). yii\web\Session
getHasSessionId() 返回一个值, 指示当前请求是否发送了 session ID. yii\web\Session
getId() 获取当前 session 的 ID. yii\web\Session
getIsActive() 获取 session 是否已经开启. yii\web\Session
getIterator() 返回用于遍历 session 变量的迭代器. yii\web\Session
getName() 获取当前 session 的名称. yii\web\Session
getSavePath() 获取当前 session 保存路径. yii\web\Session
getTimeout() 获取数据将被视为垃圾(garbage)并清除的秒数. yii\web\Session
getUseCookies() 返回指示是否应使用 cookie 来存储 session ID 的值. yii\web\Session
getUseCustomStorage() 返回一个值, 指示是否使用自定义会话(session)存储. yii\web\CacheSession
getUseStrictMode() yii\web\Session
getUseTransparentSessionID() 获取是否启用透明 sid 支持. yii\web\Session
has() 判断是否存在指定键的 session 变量. yii\web\Session
hasEventHandlers() 返回一个值, 指示是否有任何处理程序附加到指定的事件. yii\base\Component
hasFlash() 返回一个值, 指示是否存在与指定键相关联的 flash 消息. yii\web\Session
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\Component
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\Component
init() 初始化应用程序组件. yii\web\CacheSession
off() 从该组件分离现有的事件处理程序. yii\base\Component
offsetExists() 接口 ArrayAccess 需要此方法. yii\web\Session
offsetGet() 接口 ArrayAccess 需要此方法. yii\web\Session
offsetSet() 接口 ArrayAccess 需要此方法. yii\web\Session
offsetUnset() 接口 ArrayAccess 需要此方法. yii\web\Session
on() 将事件处理程序附加到事件. yii\base\Component
open() 开启 session. yii\web\Session
openSession() 打开会话处理程序. yii\web\CacheSession
readSession() 会话(session)读取处理程序. yii\web\CacheSession
regenerateID() 使用新生成的 session ID 更新当前 session ID. yii\web\Session
remove() 删除会话 session 变量. yii\web\Session
removeAll() 删除所有 session 变量. yii\web\Session
removeAllFlashes() 删除所有的 flash 消息. yii\web\Session
removeFlash() 删除一个 flash 消息. yii\web\Session
set() 添加一个 session 变量. yii\web\Session
setCacheLimiter() 设置缓存限制器. yii\web\Session
setCookieParams() 设置 session cookie 参数. yii\web\Session
setFlash() 设置一个 flash 消息. yii\web\Session
setGCProbability() 设置在每次 session 初始化时启动 GC(垃圾收集)进程概率(百分比). yii\web\Session
setHasSessionId() 设置一个值, 指示当前请求是否已经发送了 session ID. yii\web\Session
setId() 设置当前 session 的 ID. yii\web\Session
setName() 设置当前 session 的名称. yii\web\Session
setSavePath() 设置当前 session 保存路径. yii\web\Session
setTimeout() 设置数据将被视为垃圾(garbage)并清除的秒数. yii\web\Session
setUseCookies() 设置一个值, 指示是否应使用 Cookie 来存储 session ID. yii\web\Session
setUseStrictMode() yii\web\Session
setUseTransparentSessionID() 设置是否启用透明 sid 支持. yii\web\Session
trigger() 触发事件. yii\base\Component
writeSession() 会话(session)写入处理程序. yii\web\CacheSession

受保护的方法

隐藏继承的方法

方法描述定义在
calculateKey() 生成用于在缓存中存储会话(session)数据的唯一键. yii\web\CacheSession
freeze() 如果 session 开启, 则无法编辑 session ini 设置. 在 php7.2+ 中, 它引发异常. yii\web\Session
registerSessionHandler() 注册 session 处理程序. yii\web\Session
unfreeze() 开启 session 并从临时变量恢复数据. yii\web\Session
updateFlashCounters() 更新 flash 消息的计数器, 并删除过时的 flash 消息. yii\web\Session

属性详情

$cache public 属性

缓存对象或缓存对象的应用程序组件 ID.

会话(session)数据将使用此缓存对象进行存储.

在创建 CacheSession 对象后, 如果要更改此属性, 则应仅为分配一个缓存对象.

从版本 2.0.2 开始, 这也可以是用于创建对象的配置数组.

$useCustomStorage public 属性

是否使用自定义存储. 该属性是只读的.

public boolean $useCustomStorage null

方法详情

calculateKey() protected 方法

生成用于在缓存中存储会话(session)数据的唯一键.

protected mixed calculateKey ( $id )
$id string

会话(session)变量名称.

return mixed

与会话(session)变量名称关联的安全缓存键.

destroySession() public 方法

会话(session)销毁处理程序.

public boolean destroySession ( $id )
$id string

会话(session) ID.

return boolean

会话(session)是否成功销毁.

getUseCustomStorage() public 方法

返回一个值, 指示是否使用自定义会话(session)存储.

此方法覆盖父实现并始终返回true.

public boolean getUseCustomStorage ( )
return boolean

是否使用自定义存储.

init() public 方法

初始化应用程序组件.

public void init ( )
openSession() public 方法

打开会话处理程序.

public boolean openSession ( $savePath, $sessionName )
$savePath string

会话保存路径.

$sessionName string

会话名称.

return boolean

会话是否成功打开.

readSession() public 方法

会话(session)读取处理程序.

public string readSession ( $id )
$id string

会话(session) ID.

return string

会话(session)数据.

writeSession() public 方法

会话(session)写入处理程序.

public boolean writeSession ( $id, $data )
$id string

会话(session) ID.

$data string

会话(session)数据.

return boolean

会话(session)是否成功写入.