Cookies в HTTP-ответах
Cookies позволяют сохранять небольшие данные на стороне клиента. Imhotep предоставляет удобный способ добавления cookies к HTTP-ответам.
Добавление cookie
Базовый синтаксис
Используйте метод setCookie() для добавления cookie к ответу:
return response('Hello World')->setCookie(
'name', 'value', $seconds
);
PHP
Метод setCookie принимает такие же аргументы, как и встроенная в PHP функция setcookie:
return response('Hello World')->setCookie(
name: 'name',
value: 'value',
expires: 3600, // Время жизни в секундах
path: '/', // Путь
domain: '.example.com', // Домен
secure: true, // Только через HTTPS
httpOnly: true, // Недоступно из JavaScript
sameSite: 'lax' // Политика SameSite
);
PHP
Использование объекта Cookie
Вы можете создать экземпляр Imhotep\Cookie\Cookie и добавить его к ответу:
use Imhotep\Cookie\Cookie;
$cookie = new Cookie('name', 'value', 3600);
return response('Hello World')->setCookie($cookie);
PHP
Или через хелпер cookie():
$cookie = cookie('name', 'value', 3600);
return response('Hello World')->setCookie($cookie);
PHP
Отложенная добавление cookies
Используя метод queue фасада Cookie, можно прикрепить куки к еще не созданному ответу:
use Imhotep\Facades\Cookie;
Cookie::queue('name', 'value', $seconds);
// Cookies будут автоматически добавлены к ответу
return response('Hello World');
PHP
Удаление cookie
Через ответ
Для удаления cookie используйте метод removeCookie():
return response('Hello World')->removeCookie('name');
PHP
Можно указать путь и домен:
return response('Hello World')->removeCookie('name', '/', '.example.com');
PHP
Через фасад
Если экземпляр ответа еще не создан, используйте метод expire() фасада Cookie:
Cookie::expire('name');
PHP
Получение всех cookies ответа
$response = response('Hello World')
->setCookie('name1', 'value1', 3600)
->setCookie('name2', 'value2', 3600);
$cookies = $response->cookies();
// Вернёт массив объектов Cookie
PHP
Очистка всех cookies
$response = response('Hello World')->clearCookies();
PHP