Сессии Laravel играют важную роль в любом веб-приложении, они помогают нам сохранять данные сессий, которые можно извлечь в приложения.
В этой статье мы рассмотрим, как можно использовать хелперы сессий. Laravel Session предоставляют множество различных форматов для хранения данных, включая файлы, куки, базу данных, Redis и Memcached.
Сессия — это простой способ хранения данных для каждого HTTP-запроса с уникальным идентификатором.
Сессия может предоставить данные об активности пользователя в приложении. Обычно сессии отправляются в браузер через куки с уникальным идентификатором, который можно использовать для получения данных сессии.
Дефолтный драйвер для сессий — file. Он хорош для локальной разработки, но для продакшн-сервера, для повышения производительности, лучше использовать Redis или Memcached.
Вы можете изменить настройки драйвера в файла config/session.php
.
/*
|--------------------------------------------------------------------------
| Дефолтный Драйвер Сессии
|--------------------------------------------------------------------------
|
| Данная опция управляет дефолтным «драйвером» сессий,
| который будет использоваться при запросах.
| По умолчанию мы будем использовать легковесный нативный драйвер,
| но вы можете указать любой, из указанных здесь, замечательных драйверов.
|
| Поддерживается: "file", "cookie", "database", "apc",
| "memcached", "redis", "dynamodb", "array"
|
*/
'driver' => env('SESSION_DRIVER', 'file'),
Во фреймворке Laravel есть два разных метода, которые можно использовать для задания переменных в сессии. Первый использует хедпер-функцию session()
.
// Глобальная хелпер-функция
session(['key' => 'value']);
Во-вторых, вы можете использовать экземпляр Request
// Экземпляр класса Request
$request->session()->put(['key' => 'value']);
Метод push()
экземпляра Request
используется для добавления нового значения в массив сессии.
// Экземпляр класса Request
$request->session()->push(['key' => 'value']);
Есть несколько цепочных методов, доступных для session()
.
Аналогично сохранению значения сессии, существует два разных способа его получения.
Первый метод использует метод session()
// Глобальная хелпер-функция
$value = session('key');
Второй метод заключается в использовании экземпляра Request
:
// Экземпляр класса Request
$value = $request->session()->get('key');
Получение всех значений сессии
Чтобы получить все значения сессии, используйте метод all()
экземпляра Request
, как показано ниже.
// Получить все значения сессии
$values = $request->session()->all();
Метод has()
можно использовать для определения, существует ли значение в сессии. Он вернет true
если значение существует, и null
если значение не существует.
// Проверка существования значения сессии
if ($request->session()->has('key') {
//
}
Если вы хотите перегенерировать все идентификаторы для сессии, то вы можете использовать метод regenerate()
.
// Перегенерация сессионных ID
$request->session()->regenerate();
Используйте метод forget()
для удаления указанного значения по ключу из сессии.
// Удалить элемент из сессии
$request->session()->forget('key');
Чтобы удалить все элементы из сессии, можно использовать метод flush()
.
// Удаление всех значений из сессии
$request->session()->flush();
Сессии очень важны для любого веб-приложения, почти все веб-фреймворки предоставляют этот функционал «из коробки». В этой статье мы постарались охватить все варианты использования Сессий Laravel.