Download the PHP package phpsoftbox/session without Composer
On this page you can find all versions of the php package phpsoftbox/session. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download phpsoftbox/session
More information about phpsoftbox/session
Files in phpsoftbox/session
Package session
Short Description Session component for the PhpSoftBox framework
License MIT
Informations about the package session
Session
Компонент для работы с сессиями.
Структура
PhpSoftBox\Session— session API.PhpSoftBox\Session\Config— настройки session и cookie.PhpSoftBox\Session\Store— драйверы хранения session.PhpSoftBox\Session\Http— HTTP middleware.PhpSoftBox\Session\Maintenance— сервисные операции над хранилищем session.PhpSoftBox\Session\Cli— CLI-команды компонента.
Пример
DatabaseSessionStore
Если session нужно хранить в БД, используйте DatabaseSessionStore.
Он читает session id из cookie, хранит payload в таблице sessions и обновляет
cookie через общий CookieQueue.
userIdKeys связывает auth guard с ключом в payload сессии. Если ни один ключ
не найден, store записывает guard=guest и user_id=NULL.
Безопасность и долгоживущие процессы:
- id из cookie принимается, только если он в формате генератора (64 hex) и такая сессия есть в таблице; неизвестный
или некорректный id заменяется новым (
useStrictMode, по умолчанию включён) — заранее известный id не становится сессией жертвы; - сессия, неактивная дольше
gcMaxLifetime(если не задан —lifetime, приlifetime > 0), не читается и удаляется сразу, не дожидаясьsession:prune; без обеих настроек срок проверяет толькоsession:prune; - чтение и запись идут через write-соединение (реплика может отставать); одновременная вставка одной новой сессии не падает на уникальном индексе;
- после
write()иdestroy()состояние store сбрасывается — объект можно держать синглтоном в воркере.
Пример миграции лежит в database/migrations. В приложении её можно
опубликовать через db:migrate:publish --package=phpsoftbox/session.
Очистка DB-сессий
DatabaseSessionStore не запускает PHP session GC автоматически. Для удаления
старых записей используйте CLI-команду:
Сессия считается старой, если last_activity_datetime меньше текущего времени
минус max-lifetime секунд. Если last_activity_datetime пустой, команда
проверяет created_datetime. Без --max-lifetime используется
SessionConfig::$gcMaxLifetime, а если он не задан — 1440 секунд.
Для проверки без удаления:
Middleware
CsrfMiddleware отдаёт cookie XSRF-TOKEN через CookieQueue из атрибута запроса, а без CookieMiddleware —
заголовком Set-Cookie ответа. В cookie уходит токен из сессии на момент ответа: если обработчик сменил его (вход,
выход), клиент сразу получает новый.
All versions of session with dependencies
phpsoftbox/cookie Version ^1.0
psr/http-message Version ^2.0
psr/http-server-handler Version ^1.0
psr/http-server-middleware Version ^1.0