- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
PHP session 逻辑有两个不同的 SessionHandlerInterface
和 SessionUpdateTimestampHandlerInterface
SessionUpdateTimestampHandlerInterface
接口(interface)文档中仍未完整描述接口(interface)。
SessionHandlerInterface::write
和 SessionUpdateTimestampHandlerInterface::updateTimestamp
功能感觉挺像的。两者具有相同的参数( session ID 和 session 数据)并返回 bool 值。
这两个函数有什么区别?
实现这两个功能的代码应该如何区分?
如果没有向 updateTimestamp
提供时间戳,代码应该如何更新时间戳?功能?
编辑:我创建了一个 PHP bug regarding the missing docs .
最佳答案
这两个方法非常相似,只是在不同的情况下被调用。
1)
没有 SessionUpdateTimestampHandlerInterface
的 SessionHandler:
登录用户请求一个页面,并加载其所有数据的 session 。在请求期间,数据集未被修改,一旦 session 关闭,所有数据将再次写入存储(调用SessionHandlerInterface::write
)。所以你会一遍又一遍地写入相同的数据。
带有 SessionUpdateTimestampHandlerInterface
的 SessionHandler:
相同的场景,但现在如果数据集未被修改,它将调用 SessionUpdateTimestampHandlerInterface::updateTimestamp
。优点是现在您知道不需要再次编写数据集,您只需更新现有数据集的生命周期即可。这可能是一个巨大的性能改进。
2)
这取决于您存储 session /数据的位置。 SessionHandlerInterface::write
应该真正写入数据,SessionUpdateTimestampHandlerInterface::updateTimestamp
如果可能应该只更新现有项目的生命周期。 Symfony 有一些不错的 examples .
3)
时间戳应该与最大生命周期相同,以便在每次请求时像正常写入一样“重置”它。
目前提到的文档不好。在这个 RFC 中可以找到一些很好的信息.
关于php - SessionHandlerInterface::write 和 SessionUpdateTimestampHandlerInterface::updateTimestamp 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53647435/
我正在为 SessionHandlerInterface 类 使用以下写入方法: public function write($session_id, $session_data) { $st
所以我创建了一个实现 SessionhandlerInterface 的类并将其设置为 session 处理程序: $sessionHandler = new SessionHandler(); se
介绍 自 PHP 5.5.2 起,有一个运行时配置选项 ( session.use_strict_mode ) 旨在防止恶意客户端进行 session 固定。当启用此选项并且 native sessi
我按照 http://www.php.net/manual/en/class.sessionhandlerinterface.php 制作了以下代码 和 http://www.wikihow.com/
PHP session 逻辑有两个不同的 SessionHandlerInterface和 SessionUpdateTimestampHandlerInterface SessionUpdateTi
重新安装我的 wamp 环境后,在我打开 app_dev.php 后屏幕上显示此错误消息: Fatal error: Cannot redeclare class SessionHandlerInte
我是一名优秀的程序员,十分优秀!