我只是想知道我实际上可以在$ _SESSION 中将对象存储在对象中,因此我觉得它很酷,因为当我跳到另一页时,我仍然有我的对象。现在,在我开始使用这种方法之前,我想知道这是否真的是一个好主意,或者是否存在潜在的陷阱。
我知道,如果我只有一个入口点,就不需要这样做,但是我还没有,所以我没有一个入口点,我真的很想保留我的对象,因为我没有那样不会失去我的状态。 (现在我也读过我应该对无状态站点进行编程,但是我还不了解这个概念。)
因此,简称:在 session 中存储对象是否可以,它有任何问题吗?
编辑:
临时摘要:到目前为止,我知道重新创建对象可能更好,即使它涉及再次查询数据库。
进一步的答案也许在这方面详细阐述!
最佳答案
我知道这个话题很老,但是这个问题不断出现,并没有让我满意:
无论是将对象保存在$ _SESSION中,还是基于隐藏在隐藏表单字段中的数据将它们整块地重构,还是每次都从DB重新查询它们,您都在使用状态。 HTTP是无状态的(或多或少;但是请参阅GET与PUT),但是几乎每个人都想使用Web应用程序执行的操作都需要在某个地方维护状态。好像把国家推到了角落,这在某种程度上是理论上的胜利,这是错误的。状态就是状态。如果使用状态,则将失去无状态所带来的各种技术优势。这不是失去 sleep 的东西,除非您事先知道应该失去 sleep 。
汉克·盖伊(Hank Gay)提出的“双重打击”论点所带来的祝福使我特别困惑。 OP是否正在构建分布式且负载均衡的电子商务系统?我的猜测不是。而且我将进一步假设,序列化他的$ User类或任何其他方法不会使他的服务器瘫痪而无法修复。我的建议:使用对您的应用程序明智的技术。 $ _SESSION中的对象可以使用,但要遵循常识性的预防措施。如果您的应用突然变成了可以与亚马逊媲美的流量,那么您将需要重新适应。那就是生活。
关于php - PHP:将 'objects'存储在$ _SESSION中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/132194/