Может войдёшь?
Черновики Написать статью Профиль

Конфигурирование сессий

перевод документация 3.x

Содержание

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, не забудьте дать этой директории права на запись.

Сессии в базе данных

Для хранения сессий в базе данных сначала сконфигурируйте соединение с базой данных.

Теперь вам нужно создать таблицу сессий. Ниже указаны 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 серверы.

Затем просто "включите" драйвер в application/config/session.php файле:

'driver' => 'memcached'

Redis Сессии

Для использования этой возможности сконфигурируйте ваши Redis серверы.

Затем просто "включите" драйвер в application/config/session.php:

'driver' => 'redis'

Сессии в памяти

Драйвер сохраниния в памяти просто использует простой массив для сохранения данных сессии для текущего запроса. Этот драйвер прекрасно подходит для тестирования, так как не сохраняет данные на диске. Поэтому же он не рекомендуется к использованию в реальной работе.

Написать комментарий

Разметка: ? ?

Авторизуйся, чтобы прокомментировать.