diff --git a/session.md b/session.md index b85d3624..41d380a2 100644 --- a/session.md +++ b/session.md @@ -1,5 +1,5 @@ --- -git: a743d8c805e5d277c498010e9baae192eb083dc5 +git: fc95dc890bc4085979406a11aee71227205ca0fb --- # HTTP сессии @@ -17,11 +17,13 @@ HTTP-приложения не имеют своего внутреннего с Настройки драйвера `driver` сессии определяют где будут храниться данные сессии для каждого запроса. Laravel поставляется с целым набором замечательных драйверов:
+ - `file` - сессии хранятся в `storage/framework/sessions`. - `cookie` - сессии хранятся в виде зашифрованных cookie. - `database` - хранение сессий в реляционной БД. - `memcached` / `redis` - для хранения используются эти быстрые кэширующие хранилища. - `array` - сессии хранятся в виде PHP-массивов и не будут сохраняться между запросами. +
> {tip} Драйвер массива используется во время [тестирования](/docs/{{version}}/testing) и не сохраняет данные для последующих запросов. @@ -210,12 +212,14 @@ Laravel автоматически обновляет ID сессии во вр Поскольку задачи этих методов не так очевидны, давайте коротко рассмотрим каждый из них:
+ - Метод `open` обычно используется в системе хранения файл-сессий. Поскольку Laravel поставляется с драйвером сессий `file`, вам почти никогда не потребуется делать что-либо в этом методе. Вы можете оставить его пустым как заглушку. То, что PHP требует реализовать данный метод, — это пример плохого проектирования интерфейса (обсудим это позже). - Методом `close` зачастую можно пренебречь, как и методом `open`. Для большинства драйверов он не нужен. - Метод `read` должен вернуть данные сессии по `$sessionId` в виде строки. Не нужно выполнять сериализацию или другое преобразование при получении или сохранении данных сессии в ваш драйвер, поскольку Laravel выполнит сериализацию за вас. - Метод `write` должен записать указанную строку `$data` в соответствии с `$sessionId` в какое-либо постоянное хранилище, такое как MongoDB, Dynamo и т.п. И снова, не нужно выполнять сериализацию — Laravel выполнит её за вас. - Метод `destroy` должен удалить из постоянного хранилища данные, соответствующие `$sessionId`. - Метод `gc` должен удалить все данные сессий, которые старше заданного `$lifetime`, который в свою очередь является отметкой времени UNIX. Для самоочищающихся систем, таких как Memcached и Redis, этот метод можно оставить пустым. +