## Содержание - [Основы](#the-basics) - [Cookie Sessions](#cookie) - [File System Sessions](#file) - [Database Sessions](#database) - [Memcached Sessions](#memcached) - [Redis Sessions](#redis) - [In-Memory Sessions](#memory) ## The Basics Интернет является обезличенным пространством. Это означает, что каждый запрос к вашему приложению не связан с передыдущим вопросом. Тем не менее, **sessions** позволяют хранить произвольные данные для каждого посетителя вашего приложения. Данные сессии для каждого посетителя хранятся на вашем веб-сервере, в то время куки, содержащее **session ID**, хранится на компьютере посетителя. Эти куки позволяет приложению "запомнить" сессии для данного пользователя и получить свои данные сессии при последующих запросах. > **Примечание:** Перед использованием сессий убедитесь в установке ключа приложения в **application/config/application.php**. Шесть драйверов сессий доступны "из коробки": - Cookie - Файловая система - База данных - Memcached - Redis - Память (массивы) ## Cookie сессии Сессии на основе Cookie обеспечивают легкий и быстрый механизм для хранения информации сессий. Они также являются безопасными. Каждое cookie шифруется с помощью сильного AES-256 шифрование. Тем не менее, cookie имеет предел хранения 4 Кб, так что вы можете использовать другой драйвер, если вы храните много данных в сессии. Для работы в этом режиме установите опцию драйвера сессий Cookie в **application/config/session.php**: 'driver' => 'cookie' ## Сессии "в файловой системе" Скорее всего, ваше приложение будет работать лучше с использованием сессий в файловой системе. В то же время, если ваше приложение потребляет много траффика, лучше использовать сессии в базе данных или Memcached сессии. Для старта, просто включите соотетствующий драйвер в **application/config/session.php**: 'driver' => 'file' Все готово! > **Примечание:** Сессии "в файлах" сохраняются в **storage/sessions**, не забудьте дать этой директории права на запись. ## Сессии в базе данных Для хранения сессий в базе данных сначала [сконфигурируйте соединение с базой данных](/docs/v3/database/config). Теперь вам нужно создать таблицу сессий. Ниже указаны SQL выражения, которые помогут вам это сделать. Тем не менее, не забывайте - вы можете ипользовать для этого Artisan CLI! ### Artisan php artisan session:table ### SQLite CREATE TABLE "sessions" ( "id" VARCHAR PRIMARY KEY NOT NULL UNIQUE, "last_activity" INTEGER NOT NULL, "data" TEXT NOT NULL ); ### MySQL CREATE TABLE `sessions` ( `id` VARCHAR(40) NOT NULL, `last_activity` INT(10) NOT NULL, `data` TEXT NOT NULL, PRIMARY KEY (`id`) ); Если вам нравится использовать другое имя, просто измените его в **table** опции в файле **application/config/session.php**: 'table' => 'sessions' Затем просто включите драйвер в **application/config/session.php**: 'driver' => 'database' ## Memcached Сессии Для использования этой возможности [сконфигурируйте ваши Memcached серверы](/docs/v3/database/config#memcached). Затем просто "включите" драйвер в **application/config/session.php** файле: 'driver' => 'memcached' ## Redis Сессии Для использования этой возможности [сконфигурируйте ваши Redis серверы](/docs/v3/database/redis#config). Затем просто "включите" драйвер в **application/config/session.php**: 'driver' => 'redis' ## Сессии в памяти Драйвер сохраниния в памяти просто использует простой массив для сохранения данных сессии для текущего запроса. Этот драйвер прекрасно подходит для тестирования, так как не сохраняет данные на диске. Поэтому же он не рекомендуется к использованию в реальной работе.