Для обработки HTTP cookies во фреймворке HLEB2 предназначен сервис Cookies.
Способы использования Cookies в контроллерах (и всех классах, унаследованных от Hleb\Base\Container) на примере получения значения из cookies:
Пример обращения к cookies в коде приложения:
Также объект Cookies может быть получен через внедрение зависимостей по интерфейсу Hleb\Reference\Interface\Cookie.
Для упрощения примеров, далее они будут содержать только обращение через Hleb\Static\Cookies.
Метод get() возвращает cookie по названию в виде объекта.
При помощи этого объекта можно получить как необработанные данные, так и преобразованные в нужном формате.
Преобразование тегов HTML производится фреймворком и необходимо в том случае, если данные после получения будут выведены на странице, что может создать cookie-based XSS уязвимость.
В примере показаны различные варианты получения значения cookie:
Метод all() возвращает именованный массив объектов, аналогичных полученному в методе get(), из которых можно получить значения всех или конкретных сookies.
Наиболее частой ошибкой при использовании объекта, возвращаемого этими методами, может быть использование этого объекта как значения, вместо получения значения из объекта.
Для установки или изменения cookie по названию предназначен метод set(). Первым аргументом передаётся название cookie, вторым - значение, которое будет присвоено. Третьим аргументом 'options' ожидается массив дополнительных параметров, аналогично использованию PHP функции setcookie(), в котором можно установить опции 'expires', 'path', 'domain', 'secure', 'httponly' и 'samesite'.
При помощи метода delete() удаляется cookie по названию.
Метод clear() позволяет очистить все cookies.
При асинхронном использовании фреймворка методы сервиса Cookies функционируют аналогичным образом, но при этом используется другой механизм их установки и чтения.
← Сессии Redirect →