enjoys/cookie

Cookie 管理器

2.0.1 2023-01-29 11:27 UTC

This package is auto-updated.

Last update: 2024-09-29 05:22:32 UTC


README

示例

在 Options 中设置全局参数。在安装 cookie 时,可以针对特定情况更改这些设置。

use Enjoys\Cookie\Options;

/** @var \Psr\Http\Message\ServerRequestInterface $request */
$cookieOptions = new Options($request);
$cookieOptions->setDomain('example.com'); //default: false (localhost)
$cookieOptions->setPath('/'); //default: '' (string empty)
$cookieOptions->setSecure(true); //default: false
$cookieOptions->setHttponly(true); //default: false
$cookieOptions->setSameSite('Strict'); //default: Lax
use Enjoys\Cookie\Cookie;
use Enjoys\Cookie\Options;

/** @var Options $cookieOptions */
$cookie = new Cookie($cookieOptions);

$cookie->set('key', 'value<>', $ttl = true, $options = []);
$cookie->setRaw('key', 'value<>');
$cookie->delete('key');
$cookie->get('key');
$cookie->has('key');

TTL(Time to live,生存时间)

默认 true - cookie 的有效期将在会话结束时结束(当浏览器关闭时)

也可以接受其他值

  • (int) 0 (bool) true (string) 'session' - cookie 的有效期将在会话结束时结束(当浏览器关闭时)
  • (bool) false - 不会设置 cookie,或者如果之前已经设置,则会删除
  • int|float (除了 0) - 除了 0 之外的正数或负数,将加上当前日期的秒数。如果是负数,则不会设置 cookie,或者如果之前已经设置,则会删除
  • DateTime|DateTimeImmutable - 将设置对象中指定的日期。
  • string - 允许 strtotime()、DateTime 和 date_create() 函数解析的相对日期/时间格式,例如 ‘+1 week’。所有都是相对于当前日期的。