wellrested / cookies
创建Cookie头的辅助类
v1.0.0
2018-10-11 17:44 UTC
Requires
- php: >=7
Requires (Dev)
- phpunit/phpunit: ^7
This package is auto-updated.
Last update: 2024-09-12 06:57:24 UTC
README
此包提供 CookieFactory 类,该类简化了创建 Set-cookie 头的过程。
要安装,将 wellrested/cookies 添加到项目的 composer.json 文件中。
{
"require": {
"wellrested/cookies": "~1.0"
}
}
示例
使用 CookieFactory 创建 Set-cookie 头的值。
<?php use WellRESTed\Cookies\CookieFactory; $cookieFactory = new CookieFactory(); $cookie = $cookieFactory->create('name', 'value'); // name=value
结合PSR-7 ResponseInterface->withAddedHeader 使用这些值向响应中添加cookie。
$response = $response ->withAddedHeader('Set-cookie', $cookieFactory->create('name', 'value')) ->withAddedHeader('Set-cookie', $cookieFactory->create('another', 'something-else')));
要配置 CookieFactory 以提供 Domain、Path、Secure 和 HttpOnly,将这些值传递给构造函数。
$cookieFactory = new CookieFactory( 'www.example.com', // Domain '/', // Path true, // Secure true // HttpOnly ); $cookie = $cookieFactory->create('name', 'value'); // name=value; Domain=www.example.com; Path=/; Secure; HttpOnly
过期和Max-Age
默认情况下,create() 将创建在用户关闭浏览器时过期的会话cookie。要创建一个持久cookie,提供过期时间为第三个参数。此参数可以有多种形式
数值被读取为 Max-Age 的秒数。
$cookie = $cookieFactory->create('name', 'value', 3600); // name=value; Max-Age=3600
使用 DateTime 实例来设置特定的过期时间。请注意,CookieFactory 将此 DateTime 转换为符合 RFC7321 的格式为 <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT 的 HTTP-date。
$cookie = $cookieFactory->create('name', 'value', new DateTime('31-Dec-2018 23:00:00 EST')); // name=value; Expires=Tue, 01 Jan 2019 04:00:00 GMT
您还可以提供一个字符串,该字符串将原样用作过期日期。当您提供字符串时,您负责格式化日期。
$cookie = $cookieFactory->create('name', 'value', new DateTime('Tue, 01 Jan 2019 04:00:00 GMT')); // name=value; Expires=Tue, 01 Jan 2019 04:00:00 GMT
删除Cookies
要删除cookie,请使用 remove 方法创建一个设置cookie值为空字符串并将过期日期设置为过去的 Set-cookie 头。
$cookie = $cookieFactory->remove('name'); // name=; Expires=Thu, 01 Jan 1970 00:00:00 GMT
开发
要设置本地开发环境,关闭此仓库并运行
docker-compose build docker-compose run --rm php composer install
要运行单元测试,请运行
docker-compose run --rm php phpunit