在会话自动销毁之前调用自定义方法


Calling custom method before session auto destroy

在会话被自动/手动销毁之前,有什么方法可以调用自定义方法吗?

我的问题是,我在数据库中捕获用户注销时间。当用户手动注销(通过调用注销方法)时,它可以正常工作,但当用户的会话在超时后自动销毁时,我无法捕捉注销时间。

感谢对此提出的建议。

是的,这是可能的。请访问此网站以获取深入教程
使用session_set_save_handler()(PHP-doc),您可以为GC(垃圾收集)循环添加自己的函数。这样,您就可以判断哪些会话将被垃圾收集周期破坏,并使用当前时间戳手动更新数据库中的这些记录。

如果您通过调用默认的GC处理程序来结束您的函数,那么您基本上已经在两者之间插入了自己的逻辑。

在php中,您可以实现SessionHandlerInterface,并在destroy()gc()

在YII中,您可以设置自定义会话处理程序。