zer0-framework / session
Installs: 1 887
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=7.2
- zer0-framework/config: *
- zer0-framework/core: *
This package is auto-updated.
Last update: 2024-12-07 23:19:38 UTC
README
Мы используем собственный транзакционный механизм сессий, избавленный от блокировок и постоянного чтения-записи, которым отличается встроенный в PHP механизм сессий.
Чтобы стартовать сессию нужно вызвать:
$session = $app->factory('Session'); $session->start(); /* или */ $session->startIfExists();
start()
стартует сессию безусловно, а startIfExists()
только если она уже была начата ранее.
Если вы не планируете писать в сессию, используйте startIfExists()
.
Эти вызовы можно делать многократно — ошибки это не вызовет.
Дальше вы можете работать с $_SESSION
(=== $session
) как обычно. Вы также можете использовать
$_SESSION->incr('someKey')
для атомарной работы со счетчиками.
Сессия автоматически пишется в конце запроса, но вы также можете вызвать write()
, regenerateId()
, destroy()
и другие методы.
Для краткости в контроллере есть хелперы в виде методов sessionStart()
и sessionStartIfExists()
.
В сессии не рекомендуется хранить большие объекты, рекомендуется ограничиться скалярными значениями. Например, лучше хранить ключ UID вместо сериализованного объекта User. Объект User следует кешировать отдельно с помощью компонента Cache.