文档/容器/服务/Cookies

Cookies

HLEB2 框架中,HTTP cookiesCookies 服务处理。

使用 Cookies 在控制器中(以及所有继承自 Hleb\Base\Container 的类)的示例, 例如从 cookies 中获取值:

// variant 1
use Hleb\Reference\CookieInterface;
$value $this->container->get(CookieInterface::class)->get('cookie_name');

// variant 2
$value $this->container->cookies()->get('cookie_name');

// variant 3
$value $this->cookies()->get('cookie_name');

在应用程序代码中访问 cookies 的示例:

// variant 1
use Hleb\Static\Container;
use 
Hleb\Reference\CookieInterface;
$value Container::get(CookieInterface::class)->get('cookie_name');

// variant 2
use Hleb\Static\Cookies;
$value Cookies::get('cookie_name');

也可以通过 依赖注入 接口 Hleb\Reference\Interface\Cookie 获取 Cookies 对象。

为简化示例,以下内容仅包括通过 Hleb\Static\Cookies 进行访问。


#get()

get() 方法按名称返回一个 cookie 对象。 通过该对象,您可以获取原始数据和转换后格式的数据。 框架会处理 HTML 标签转换,这是必要的,如果数据将在页面上显示以避免潜在的 cookie-based XSS 漏洞。
示例展示了多种获取 cookie 值的方式:

use Hleb\Static\Cookies;

// (!) Original raw data.
$rawValue Cookies::get('cookie_name')->value();

// Validated data converted to string.
$clearedStringValue Cookies::get('cookie_name')->asString();

// Data converted to an integer.
$integerValue Cookies::get('cookie_name')->asInt();

// Data checked for a positive integer.
$positiveIntegerValue Cookies::get('cookie_name')->asPositiveInt();

#all()

all() 方法返回一个命名数组,其中包含与 get() 方法获得的对象类似的对象,您可以从中获取所有或特定 cookies 的值。

使用这些方法返回的对象时,最常见的错误是将对象当作值来使用,而不是从对象中获取值。


#set()

使用 set() 方法可以通过名字设置或更新 cookie。第一个参数是 cookie 的名字,第二个参数是要分配的值。第三个参数 'options' 需要一个附加参数的数组,类似于 PHP 函数 setcookie() 的用法,可以在其中设置 'expires''path''domain''secure''httponly''samesite' 等选项。

use Hleb\Static\Cookies;

$options = [
    
'expires' => time() + 60 60 24 30,
    
'path' => '/',
    
'domain' => '.example.com'// leading dot for compatibility or use subdomain
    
'secure' => true,     // or false
    
'httponly' => true,    // or false
    
'samesite' => 'None' // None / Lax / Strict
];
Cookies::set('cookie_name''value'$options);

#delete()

可以使用 delete() 方法根据名字删除一个 cookie。


#clear()

clear() 方法允许您清除所有 cookies。


#异步模式

在框架的异步使用中,Cookies 服务的方法功能类似,但使用了不同的机制来设置和读取它们。

会话 重定向

页面翻译:chatgpt 4-o
返回顶部