К содержанию
Meduza
Документация

Сессии

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');