polymorphine / headers
HTTP 响应头中间件
0.1.2
2022-10-05 01:38 UTC
Requires
- php: ^7.4 || ^8.0
- psr/http-message: ^1.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- polymorphine/dev: 0.2.*
This package is auto-updated.
Last update: 2024-09-05 05:56:38 UTC
README
HTTP 响应头中间件
使用 Composer 安装
composer require polymorphine/headers
基本用法
设置-Cookie 响应头
- 使用
ResponseHeaders
上下文实例化 cookie 构建器$headers = new ResponseHeaders(); $cookieSetup = new CookieSetup($headers);
或者,可以使用ResponseHeaders
方法实例化CookieSetup
$cookieSetup = $context->cookieSetup();
- 使用其指令/属性的数组配置 cookie(见
CookieSetup::directives()
方法)$cookieSetup->directives([ 'Domain' => 'example.com', 'Path' => '/admin', 'Expires' => new DateTime(...), 'MaxAge' => 1234, 'Secure' => true, 'HttpOnly' => true, 'SameSite' => 'Strict' ]);
也可以使用其构建器方法修改设置对象$cookieSetup->domain('example.com') ->path('/admin') ->expires(new DateTime(...)) ->maxAge(1234) ->secure() ->httpOnly() ->sameSite('Strict');
- 使用其名称实例化
Cookie
类型对象$cookie = $cookieSetup->cookie('MyCookie');
- 发送值
$cookie->send('value');
或者撤销 cookie,以便它不会被未来的请求发送$cookie->revoke();
每个 cookie 只能发送/撤销一次头信息
指令和属性
指令根据 RFC6265 中关于 Set-Cookie 响应头属性的章节使用(除了相对较新的 SameSite
指令)。它们的描述也可能在 Mozilla 开发者网络 找到。在 CookieSetup
类的 mutator 方法文档块中解释了具有附加类逻辑的简洁描述。
以下是一些针对设置这些指令的类特定规则
- 空值和根路径(
/
)可以省略,因为它们与默认值相同。 SameSite
允许的值是Strict
或Lax
,但任何非空值都将设置Lax
。Expires
和MaxAge
是设置相同 cookie 过期日期的不同方式。如果两个指令都传递给构造函数或directivesArray()
方法,则由于覆盖,将使用最后一个值。
具有预定义指令的 Cookie
CookieSetup
有两种创建 Cookie
实例的替代方法: CookieSetup::permanentCookie()
和 CookieSetup::sessionCookie()
。
- 永久 构造函数设置长(5 年)的过期值(
Expires
和MaxAge
) - 会话 构造函数设置安全指令(
HttpOnly
和SameSite=Lax
)