dev-master 2021-12-07 15:57 UTC

This package is auto-updated.

Last update: 2024-09-07 22:46:39 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 对象。