Что такое сессии? Где хранятся? Как переопределить механизм хранения?

Ответ

Сессии - механизм хранения данных пользователя между запросами на стороне сервера.

session_start();
$_SESSION['user_id'] = 42;      // сохранить
$id = $_SESSION['user_id'];     // прочитать
unset($_SESSION['user_id']);     // удалить
session_destroy();               // уничтожить сессию

По умолчанию данные хранятся в файлах (/tmp/sess_XXXX). Идентификатор сессии передается через cookie PHPSESSID.

Переопределение хранилища через SessionHandlerInterface:

class RedisSessionHandler implements SessionHandlerInterface {
    public function read($id): string { /* Redis GET */ }
    public function write($id, $data): bool { /* Redis SET */ }
    // ... open, close, destroy, gc
}
session_set_save_handler(new RedisSessionHandler());

Также: session.save_handler = redis в php.ini.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.