Class yii\web\Cookie

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

Cookie 表示与 cookie 相关的信息, 如 $name, $value, $domain 等.

有关 Cookie 的更多详细信息和使用信息, 请参阅 权威指南 - 请求处理- Sessions and Cookies.

公共属性

隐藏继承的属性

属性类型描述定义在
$domain string Cookie 的域名. yii\web\Cookie
$expire integer Cookie 过期的时间戳. yii\web\Cookie
$httpOnly boolean 是否仅应通过 HTTP 协议访问 cookie. yii\web\Cookie
$name string Cookie 的名称. yii\web\Cookie
$path string Cookie 在服务器上可用的路径. yii\web\Cookie
$sameSite string SameSite 阻止浏览器将此 Cookie 与跨站点请求一起发送. yii\web\Cookie
$secure boolean 是否应通过安全连接发送 cookie. yii\web\Cookie
$value string Cookie 的值. yii\web\Cookie

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的已命名方法. yii\base\BaseObject
__construct() 构造函数. yii\base\BaseObject
__get() 返回对象属性的值. yii\base\BaseObject
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\BaseObject
__set() 设置对象属性的值. yii\base\BaseObject
__toString() 魔术方法, 将 cookie 对象转换为字符串, 而不必显式的访问 $value. yii\web\Cookie
__unset() 将对象属性设置为null. yii\base\BaseObject
canGetProperty() 返回一个值, 指示属性是否可读. yii\base\BaseObject
canSetProperty() 返回一个值, 指示属性是否可写. yii\base\BaseObject
className() 返回此类的完全限定名称. yii\base\BaseObject
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\BaseObject
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\BaseObject
init() 初始化对象. yii\base\BaseObject

常量

隐藏继承的常量

常量描述定义在
SAME_SITE_LAX 'Lax' SameSite 策略宽松会阻止在 CSRF-prone 请求方法(eg. POST, PUT, PATCH etc). Eg. 从 https://otherdomain.comhttps://yourdomain.com 的 POST 请求将不包含 Cookie, 但是将包含 GET 请求. 当用户点击从 https://otherdomain.comhttps://yourdomain.com 的链接时, 它将包含 Cookie. yii\web\Cookie
SAME_SITE_STRICT 'Strict' SameSite 策略严格将阻止浏览器在所有跨站点浏览上下文中发送 cookie, 无论请求方法如何, 甚至是遵循常规链接也是如此. Eg. 从 https://otherdomain.comhttps://yourdomain.com 的 GET 请求, 或者从 https://otherdomain.comhttps://yourdomain.com 的链接的用户将不包含 cookie. yii\web\Cookie

属性详情

$domain public 属性

Cookie 的域名.

public string $domain ''
$expire public 属性

Cookie 过期的时间戳.

这是服务器时间戳. 默认为0, 意思是"直到浏览器关闭".

public integer $expire 0
$httpOnly public 属性

是否仅应通过 HTTP 协议访问 cookie.

通过将此属性设置为true, 将无法通过脚本语言(如 JavaScript)访问 Cookie, 这可以有效地帮助减少通过 XSS 攻击的身份盗用.

public boolean $httpOnly true
$name public 属性

Cookie 的名称.

public string $name null
$path public 属性

Cookie 在服务器上可用的路径. 默认是/.

public string $path '/'
$sameSite public 属性 (可用自版本: 2.0.21)

SameSite 阻止浏览器将此 Cookie 与跨站点请求一起发送. 请注意, 自 PHP 7.3.0 起仅支持此功能. 为了提高安全性, 如果在使用不受支持版本时设置了sameSite, 则会抛出异常. 要在不同的 PHP 版本中使用此功能, 请首先检查版本, 例如:

$cookie->sameSite = PHP_VERSION_ID >= 70300 ? yii\web\Cookie::SAME_SITE_LAX : null,

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

public string $sameSite null
$secure public 属性

是否应通过安全连接发送 cookie.

public boolean $secure false
$value public 属性

Cookie 的值.

public string $value ''

方法详情

__toString() public 方法

魔术方法, 将 cookie 对象转换为字符串, 而不必显式的访问 $value.

if (isset($request->cookies['name'])) {
    $value = (string) $request->cookies['name'];
}
public string __toString ( )
return string

Cookie 的值. 如果value属性为null, 则将返回一个空字符串.