在会话被自动/手动销毁之前,有什么方法可以调用自定义方法吗?
我的问题是,我在数据库中捕获用户注销时间。当用户手动注销(通过调用注销方法)时,它可以正常工作,但当用户的会话在超时后自动销毁时,我无法捕捉注销时间。
感谢对此提出的建议。
是的,这是可能的。请访问此网站以获取深入教程
使用session_set_save_handler()
(PHP-doc),您可以为GC(垃圾收集)循环添加自己的函数。这样,您就可以判断哪些会话将被垃圾收集周期破坏,并使用当前时间戳手动更新数据库中的这些记录。
如果您通过调用默认的GC处理程序来结束您的函数,那么您基本上已经在两者之间插入了自己的逻辑。
在php中,您可以实现SessionHandlerInterface,并在destroy()或gc() 在YII中,您可以设置自定义会话处理程序。