Class yii\web\Session

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

Session 提供 session 数据管理和相关配置.

Session 是一个 Web 应用程序组件, 可以通过Yii::$app->session访问.

要开启 session, 请调用 open(); 要完成并发送 session 数据, 请调用 close(); 要销毁 session, 请调用 destroy().

Session 可以像数组一样使用来设置和获取 session 数据. 例如:

$session = new Session;
$session->open();
$value1 = $session['name1'];  // 获取 session 变量 'name1'
$value2 = $session['name2'];  // 获取 session 变量 'name2'
foreach ($session as $name => $value) // 遍历所有 session 变量
$session['name3'] = $value3;  // 设置 session 变量 'name3'

Session 可以扩展为支持自定义 session 存储. 为此, 请重写 $useCustomStorage 使其返回true, 并使用有关使用自定义存储的实际逻辑来重写这些方法:openSession(), closeSession(), readSession(), writeSession(), destroySession()gcSession().

Session 还支持一种特殊的 session 数据类型, 称为flash messages. Flash 消息仅在当前请求和下一个请求中可用. 之后, 它将被自动删除. Flash 消息对于显示确认消息特别有用. 要使用 Flash消息, 只需调用 setFlash(), getFlash() 等方法.

有关 Session 的更多详细信息和使用信息, 请参阅 guide article on sessions.

公共属性

隐藏继承的属性

属性类型描述定义在
$allFlashes array Flash 消息 (key => message or key => [message1, message2]). 该属性是只读的. yii\web\Session
$behaviors yii\base\Behavior[] 附加到此组件的行为列表. 该属性是只读的. yii\base\Component
$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\Session
$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\Session
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\Session
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\Session
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() Session 开启处理程序. yii\web\Session
readSession() Session 读取处理程序. yii\web\Session
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\Session

受保护的方法

隐藏继承的方法

方法描述定义在
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

属性详情

$_forceRegenerateId protected 属性

在启用useStrictMode且需要重新生成会话ID的情况下保存会话ID.

protected string|null $_forceRegenerateId null
$_originalSessionModule protected static 属性

保留原始会话模块(再注册自定义处理程序之前), 以便在拥有自定义处理程序的Session组件之后使用没有自定义处理程序的Session组件时可以将其还原.

protected static string|null $_originalSessionModule null
$allFlashes public 属性

Flash 消息 (key => message or key => [message1, message2]). 该属性是只读的.

public array $allFlashes null
$cacheLimiter public 属性

当前缓存限制器. 该属性是只读的.

public string $cacheLimiter null
$cookieParams public 属性

session cookie 参数. 该属性是只读的.

public array $cookieParams null
$count public 属性

session 变量的数量. 该属性是只读的.

public integer $count null
$flash public 属性

标识 flash 消息的键. 请注意, Flash 消息和常规 session 变量共享相同的名称空间. 如果你的常规 session 变量使用相同的名称, 则此方法将覆盖其值. 该属性是只写的.

public string $flash null
$flashParam public 属性

存储 flash 消息数据的 session 变量的名称.

public string $flashParam '__flash'
$gCProbability public 属性

每次 session 初始化时启动 GC(垃圾收集)进程的概率(百分比).

public float $gCProbability null
$handler public 属性

实现 SessionHandlerInterface 或配置数组的对象. 如果设置, 将用于提供持久性而不是内置方法.

$hasSessionId public 属性

当前请求是否发送了 session ID.

public boolean $hasSessionId null
$id public 属性

当前 session ID.

public string $id null
$isActive public 属性

session 是否已开启. 该属性是只读的.

public boolean $isActive null
$iterator public 属性

遍历 session 变量的迭代器. 该属性是只读的.

$name public 属性

当前 session 名称.

public string $name null
$savePath public 属性

当前 session 的保存路径, 默认为/tmp.

public string $savePath null
$timeout public 属性

此秒数后, 数据将被视为垃圾(garbage)并清除. 默认值为1440秒(或在 php.ini 中设置的session.gc_maxlifetime的值).

public integer $timeout null
$useCookies public 属性

指示是否应使用 cookies 来存储 session ID 的值.

public boolean|null $useCookies null
$useCustomStorage public 属性

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

public boolean $useCustomStorage null
$useStrictMode public 属性

是否启用严格模式. 该属性是只读的.

public boolean $useStrictMode null
$useTransparentSessionID public 属性

是否启用透明 sid 支持, 默认为false.

方法详情

addFlash() public 方法

添加一个 flash 消息.

如果现有的 flash 消息具有相同的密钥, 则新的 flash 消息将追加到现有消息数组中.

参见:

public void addFlash ( $key, $value true, $removeAfterAccess true )
$key string

表示 flash 消息的键.

$value mixed

Flash 消息.

$removeAfterAccess boolean

是否仅在访问 flash 消息后才自动将其删除. 如果为false, 则无论是否访问 flash 消息, 在下一次请求后都会自动将其删除. 如果为true(默认值), 则 flash 信息将一直保留到访问它为止.

close() public 方法

结束当前 session 并存储 session 数据.

public void close ( )
closeSession() public 方法

Session 关闭处理程序.

如果 $useCustomStorage 返回true, 则应重写此方法.

public boolean closeSession ( )
return boolean

Session 是否成功关闭.

count() public 方法

返回 session 中的项目数量.

Countable 接口需要此方法.

public integer count ( )
return integer

Session 中的项目数量.

destroy() public 方法

释放所有 session 变量, 并销毁注册到 session 的所有数据.

如果 session 不是 active, 则此方法无效. 确保在调用 open() 之前先调用它.

参见:

public void destroy ( )
destroySession() public 方法

Session 销毁处理程序.

如果 $useCustomStorage 返回true, 则应重写此方法.

public boolean destroySession ( $id )
$id string

Session ID.

return boolean

Session 是否成功销毁.

freeze() protected 方法 (可用自版本: 2.0.14)

如果 session 开启, 则无法编辑 session ini 设置. 在 php7.2+ 中, 它引发异常.

此功能将 session 数据保存到临时变量并停止 session.

protected void freeze ( )
gcSession() public 方法

Session GC(垃圾收集)处理程序.

如果 $useCustomStorage 返回true, 则应重写此方法.

public boolean gcSession ( $maxLifetime )
$maxLifetime integer

此秒数后, 数据将被视为垃圾(garbage)并清除.

return boolean

Session 是否已成功.

get() public 方法

返回带有 session 变量名称的 session 变量值.

如果 session 变量不存在, 则返回$defaultValue.

public mixed get ( $key, $defaultValue null )
$key string

Session 变量的名称.

$defaultValue mixed

Session 变量不存在时返回的默认值.

return mixed

Session 变量值, 或 session 变量不存在时返回$defaultValue.

getAllFlashes() public 方法

返回所有的 flash 消息.

你可以使用此方法在视图文件中显示所有的 flash 消息:

<?php
foreach (Yii::$app->session->getAllFlashes() as $key => $message) {
    echo '<div class="alert alert-' . $key . '">' . $message . '</div>';
} ?>

你可以使用此方法显示所偶内容. 使用上面的代码, 你可以使用 bootstrap alert 类, 比如success, info, danger作为 flash 消息键来影响 div 的颜色.

Note: 如果你使用 addFlash(), $message将是一个数组, 并且你将不得不调整上述代码.

参见:

public array getAllFlashes ( $delete false )
$delete boolean

是否在调用此方法后立即删除 flash 消息. 如果为false, 则 flash 消息将在下一个请求中自动删除.

return array

Flash 消息 (key => message or key => [message1, message2]).

getCacheLimiter() public 方法 (可用自版本: 2.0.14)

返回当前的缓存限制器.

public string getCacheLimiter ( )
return string

当前的缓存限制器.

getCookieParams() public 方法
public array getCookieParams ( )
return array

Session cookie 参数.

getCount() public 方法

返回 session 中的项目数量.

public integer getCount ( )
return integer

Session 变量的数量.

getFlash() public 方法
public mixed getFlash ( $key, $defaultValue null, $delete false )
$key string

标识 flash 消息的键.

$defaultValue mixed

如果 flash 消息不存在, 应该返回的值.

$delete boolean

是否在调用此方法后立即删除 flash 消息. 如果为false, 则 flash 消息将在下一个请求中自动删除.

return mixed

Flash 消息, 或如果使用addFlash, 返回的消息数组.

getGCProbability() public 方法

获取在每次 session 初始化时启动 GC(垃圾收集)进程概率(百分比).

public float getGCProbability ( )
return float

在每次 session 初始化时启动 GC(垃圾收集)进程概率(百分比).

getHasSessionId() public 方法

返回一个值, 指示当前请求是否发送了 session ID.

默认实现将使用 session 名称检查 cookie 和 $_GET. 如果通过其它方式发送 session ID, 则可能需要重写此方法或调用 setHasSessionId() 来显式设置是否发送 session ID.

public boolean getHasSessionId ( )
return boolean

当前请求是否发送了 session ID.

getId() public 方法

获取当前 session 的 ID.

这是对 PHP session_id() 的封装.

public string getId ( )
return string

当前 session 的 ID.

getIsActive() public 方法

获取 session 是否已经开启.

public boolean getIsActive ( )
return boolean

Session 是否已经开启.

getIterator() public 方法

返回用于遍历 session 变量的迭代器.

接口 IteratorAggregate 需要此方法.

public yii\web\SessionIterator getIterator ( )
return yii\web\SessionIterator

用于遍历 session 变量的迭代器

getName() public 方法

获取当前 session 的名称.

这是对 PHP session_name() 的封装.

public string getName ( )
return string

当前 session 名称

getSavePath() public 方法

获取当前 session 保存路径.

这是对 PHP session_save_path() 的封装.

public string getSavePath ( )
return string

当前 session 保存路径, 默认为/tmp.

getTimeout() public 方法

获取数据将被视为垃圾(garbage)并清除的秒数.

public integer getTimeout ( )
return integer

此秒数后, 数据将被视为垃圾(garbage)并清除. 默认值为1440秒(或在 php.ini 中设置的session.gc_maxlifetime的值).

getUseCookies() public 方法

返回指示是否应使用 cookie 来存储 session ID 的值.

参见 setUseCookies().

public boolean|null getUseCookies ( )
return boolean|null

指示是否应使用 cookie 来存储 session ID 的值.

getUseCustomStorage() public 方法

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

实现自定义 session 存储的子类应重写此方法以返回 true. 要实现自定义 session 存储, 请重写以下方法: openSession(), closeSession(), readSession(), writeSession(), destroySession()gcSession().

public boolean getUseCustomStorage ( )
return boolean

是否使用自定义存储.

getUseStrictMode() public 方法 (可用自版本: 2.0.38)
public boolean getUseStrictMode ( )
return boolean

是否启用严格模式.

getUseTransparentSessionID() public 方法

获取是否启用透明 sid 支持.

public boolean getUseTransparentSessionID ( )
return boolean

是否启用透明 sid 支持, 默认为false.

has() public 方法

判断是否存在指定键的 session 变量.

public boolean has ( $key )
$key mixed

Session 变量.

return boolean

是否存在指定键的 session 变量.

hasFlash() public 方法

返回一个值, 指示是否存在与指定键相关联的 flash 消息.

public boolean hasFlash ( $key )
$key string

标识 flash 消息类型的键.

return boolean

指定键是否存在任何 flash 消息.

init() public 方法

初始化应用程序组件.

此方法是 IApplicationComponent 必需的, 并由应用程序调用.

public void init ( )
offsetExists() public 方法

接口 ArrayAccess 需要此方法.

public boolean offsetExists ( $offset )
$offset mixed

要检查的偏移量.

offsetGet() public 方法

接口 ArrayAccess 需要此方法.

public mixed offsetGet ( $offset )
$offset integer

要检索元素的偏移量.

return mixed

偏移量处的元素, 如果在偏移处未找到任何元素, 则返回null.

offsetSet() public 方法

接口 ArrayAccess 需要此方法.

public void offsetSet ( $offset, $item )
$offset integer

设置元素的偏移量.

$item mixed

元素值.

offsetUnset() public 方法

接口 ArrayAccess 需要此方法.

public void offsetUnset ( $offset )
$offset mixed

未设置元素的偏移量.

open() public 方法

开启 session.

public void open ( )
openSession() public 方法

Session 开启处理程序.

如果 $useCustomStorage 返回true, 则应重写此方法.

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

Session 保存路径.

$sessionName string

Session 名称.

return boolean

Session 是否成功开启.

readSession() public 方法

Session 读取处理程序.

如果 $useCustomStorage 返回true, 则应重写此方法.

public string readSession ( $id )
$id string

Session ID.

return string

Session 数据.

regenerateID() public 方法

使用新生成的 session ID 更新当前 session ID.

有关更多详细信息, 请参阅 http://php.net/session_regenerate_id.

如果 session 不是 active, 则此方法无效. 确保在调用 open() 之前先调用它.

参见:

public void regenerateID ( $deleteOldSession false )
$deleteOldSession boolean

是否删除旧的关联 session 文件.

registerSessionHandler() protected 方法

注册 session 处理程序.

protected void registerSessionHandler ( )
throws yii\base\InvalidConfigException
remove() public 方法

删除会话 session 变量.

public mixed remove ( $key )
$key string

要删除的 session 变量的名称.

return mixed

删除的值, 如果没有此类的 session 变量, 则为null.

removeAll() public 方法

删除所有 session 变量.

public void removeAll ( )
removeAllFlashes() public 方法

删除所有的 flash 消息.

Note: flash 消息和常规 session 变量共享相同的名称空间. 如果你有一个使用相同的名称的普通 session 变量, 则将通过此方法将其删除.

参见:

public void removeAllFlashes ( )
removeFlash() public 方法

删除一个 flash 消息.

参见:

public mixed removeFlash ( $key )
$key string

识别 flash 消息的键.

Note: flash 消息和常规 session 变量共享相同的名称空间. 如果你有一个使用相同的名称的普通 session 变量, 则将通过此方法将其删除.

return mixed

删除的 flash 消息. 如果 flash 消息不存在, 则为'null'.

set() public 方法

添加一个 session 变量.

如果指定的名称已经存在, 旧的值将被覆盖.

public void set ( $key, $value )
$key string

Session 变量的名称.

$value mixed

Session 变量的值.

setCacheLimiter() public 方法 (可用自版本: 2.0.14)

设置缓存限制器.

public void setCacheLimiter ( $cacheLimiter )
$cacheLimiter string
setCookieParams() public 方法

设置 session cookie 参数.

传递给此方法的 cookie 参数将与sessionsession_get_cookie_params()的结果合并.

参见 https://secure.php.net/manual/en/function.session-set-cookie-params.php.

public void setCookieParams ( array $value )
$value array

Cookie 参数, 有效键包括: lifetime, path, domain, securehttponly. 从 Yii 2.0.21 开始, 也支持sameSite. 它要求 php 版本 7.3.0 或更高. 为了安全起见, 如果在使用不受支持的 PHP 版本时设置了sameSite, 则会引发异常. 要在不同的 PHP 版本中使用此功能, 请首先检查版本. eg:

[
    'sameSite' => PHP_VERSION_ID >= 70300 ? yii\web\Cookie::SAME_SITE_LAX : null,
]

有关sameSite的更多信息, 请参阅 https://www.owasp.org/index.php/SameSite.

throws yii\base\InvalidArgumentException

如果参数不完整.

setFlash() public 方法

设置一个 flash 消息.

在请求中访问一个 flash 消息后, 它将被自动删除, 并在下一个请求中删除. 如果已经存在具有相同的键的 flash 消息, 它将被新的消息覆盖.

参见:

public void setFlash ( $key, $value true, $removeAfterAccess true )
$key string

标识 flash 消息的键. 请注意, flash 消息和常规 session 变量共享相同的名称空间. 如果你的普通 session 变量使用相同的名称, 则此方法将覆盖其值.

$value mixed

Flash 消息.

$removeAfterAccess boolean

是否仅在访问 flash 消息后才自动将其删除. 如果为false, 则无论是否访问 flash 消息, 在下一次请求后都会自动将其删除. 如果为true(默认值), 则 flash 信息将一直保留到访问它为止.

setGCProbability() public 方法

设置在每次 session 初始化时启动 GC(垃圾收集)进程概率(百分比).

public void setGCProbability ( $value )
$value float

在每次 session 初始化时启动 GC(垃圾收集)进程概率(百分比).

throws yii\base\InvalidArgumentException

如果该值不在0和100之间.

setHasSessionId() public 方法

设置一个值, 指示当前请求是否已经发送了 session ID.

提供此方法是为了可以覆盖确定是否发送 session ID 的默认方法.

public void setHasSessionId ( $value )
$value boolean

当前请求是否已经发送了 session ID.

setId() public 方法

设置当前 session 的 ID.

这是对 PHP session_id() 的封装.

public void setId ( $value )
$value string

当前 session 的 ID.

setName() public 方法

设置当前 session 的名称.

这是对 PHP session_name() 的封装.

public void setName ( $value )
$value string

当前 session 的名称, 必须是字母数字字符串. 默认为PHPSESSID.

setSavePath() public 方法

设置当前 session 保存路径.

这是对 PHP session_save_path() 的封装.

public void setSavePath ( $value )
$value string

当前 session 保存路径. 这可以是目录名称或 路径别名.

throws yii\base\InvalidArgumentException

如果路径不是有效的目录.

setTimeout() public 方法

设置数据将被视为垃圾(garbage)并清除的秒数.

public void setTimeout ( $value )
$value integer

此秒数后, 数据将被视为垃圾(garbage)并清除.

setUseCookies() public 方法

设置一个值, 指示是否应使用 Cookie 来存储 session ID.

三种状态是可能的:

  • true: cookies, 并且只有 cookie 将用于存储 session ID.
  • false: cookies 将不会用于存储 session ID.
  • null: 如果可能, 将使用 cookies 来存储 session ID; 如果没有, 将使用其它机制(eg. GET 参数).
public void setUseCookies ( $value )
$value boolean|null

指示是否应使用 cookie 来存储 session ID 的值.

setUseStrictMode() public 方法 (可用自版本: 2.0.38)
public void setUseStrictMode ( $value )
$value
setUseTransparentSessionID() public 方法

设置是否启用透明 sid 支持.

public void setUseTransparentSessionID ( $value )
$value boolean

是否启用透明 sid 支持.

unfreeze() protected 方法 (可用自版本: 2.0.14)

开启 session 并从临时变量恢复数据.

protected void unfreeze ( )
updateFlashCounters() protected 方法

更新 flash 消息的计数器, 并删除过时的 flash 消息.

该方法仅应在 init() 中调用一次.

protected void updateFlashCounters ( )
writeSession() public 方法

Session 写入处理程序.

如果 $useCustomStorage 返回true, 则应重写此方法.

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

Session ID.

$data string

Session 数据.

return boolean

Session 是否成功写入.