Сессии
App\Http\Session используется для хранения и чтения данных сессии.
Инициализация класса
Создайте объект Session, после чего можно работать с методами класса.
use App\Http\Session;
$session = new Session();
Установка значения
Метод $session->set($key, $value) сохраняет значение по ключу.
$session->set('user_id', 1);
Проверка существования ключа
Метод $session->has($key) проверяет наличие ключа в сессии.
$userIdExists = $session->has('user_id');
if (!$userIdExists) {
echo 'Сессия "user_id" не существует';
}
Получение значения
Метод $session->get($key, $default = null) возвращает значение по ключу или значение по умолчанию,
если ключ отсутствует.
$userId = $session->get('user_id', 0);
echo sprintf('Сессия "user_id" содержит значение %d', $userId);
Удаление значения
Метод $session->remove($key) удаляет ключ вместе со значением.
$session->remove('user_id');
Работа с массивами
Сохранение массива
Эти записи эквивалентны:
$session->set('user', [
'id' => 1,
'name' => 'Vadim',
]);
$session->set('user.id', 1);
$session->set('user.name', 'Vadim');
Проверка ключей массива
$userExists = $session->has('user');
$userIdExists = $session->has('user.id');
$userNameExists = $session->has('user.name');
if (!$userExists || !$userIdExists || !$userNameExists) {
echo 'Сессия "user", "user.id" или "user.name" не существует';
}
Получение значений из массива
Ниже приведены три эквивалентные записи.
$userId = $session->get('user.id', 0);
$userName = $session->get('user.name', '');
echo sprintf(
'Сессия "user.id" содержит значение %d, а "user.name" содержит значение %s',
$userId,
$userName
);
$user = $session->get('user', ['id' => 0, 'name' => '']);
$userId = $user['id'];
$userName = $user['name'];
echo sprintf(
'Сессия "user.id" содержит значение %d, а "user.name" содержит значение %s',
$userId,
$userName
);
$user = $session->get('user', []);
$userId = $user['id'] ?? 0;
$userName = $user['name'] ?? '';
echo sprintf(
'Сессия "user.id" содержит значение %d, а "user.name" содержит значение %s',
$userId,
$userName
);
Удаление значений из массива
$session->remove('user.id');
$session->remove('user.name');