我目前的工作是一个网站,有很高的流量,以我的标准。它是一个网络商店,在它的会话中有一些(序列化的)对象。
例如。
$_SESSION['shoppingcart'] = new Shoppingcart();这个对象后来在整个代码中被使用。到目前为止没问题。当前的会话持续时间为1小时,当用户通过发出请求使其保持活动状态时,会话时间将被延长。
现在,对于(可能是众所周知的)问题:在对示例中的Shoppingcart类进行更改时,该更改有可能破坏对象的反序列化。我们能做些什么来防止这个问题?推荐的方法是什么?
发布于 2018-02-14 15:42:14
有一个很好的机会,这里有一个专家,有一个更好的答案,但现在我将分享我的发现。
鉴于所有这些潜在的问题,我强烈建议不要在会话中存储对象。如果希望持久化登录用户,而不是将用户类的实例存储在$_SESSION中,只需存储用户ID并从数据库或缓存中填充用户对象即可。这比让PHP神奇地为您处理一切要多一些,但是您的应用程序在没有对象序列化的情况下将更加稳定和可移植。
https://stackoverflow.com/questions/48790860
复制相似问题