2012-12-21 129 views
-1

比询问具有明确正确/错误答案的问题更多的是征求您的意见。在php中共享对象

我对OOPHP相当陌生我在过去做过一些OO编程。让我头昏脑胀的是在页面之间共享对象(或更多状态)的最佳方式。

我试图避免将大量数据填入$ _SESSION,并且我不喜欢在每个页面更改的表单中发布所有数据的想法。

任何见解,将不胜感激。

感谢TT

+2

如果应该共享某些东西,那么使用会话有什么问题?另一种方法是重新加载每个页面加载的数据,但这并不总是可行的/最好的。 – webnoob

+0

这个问题与OOP无关。无论采用的编程范例如何,页面加载之间的持久数据都是相同的。 – deceze

回答

4

保存“大量的数据”在$_SESSION没有什么不妥。通过这样做,您完全不会增加传输大小或任何内容,因此您不会影响客户端,因为$_SESSION纯粹是服务器端。

我试图避免大量的数据涌入$ _SESSION,并且我不喜欢在每个页面更改的表单中发布所有数据的想法。

如上所述,这是一个不是问题的问题,你不“的形式每个页面的变化发布的所有数据”,它是存储在服务器端的平面文件,当你重新打开被简单地自动反序列化该会议,并投入$_SESSION

假设$_SESSION的一生对你来说已经足够了,你应该使用它。

如果您需要比$_SESSION更持久的东西,例如您需要在用户登录的整个过程中针对用户存储对象,则可以考虑序列化数据库中的对象并将其拉出页面加载,或者简单地从您存储的对用户的值中重新创建一个对象。

+0

由于鲁迪, 我只是证实了我认为是真实的(这些是我唯一的选择) 此外,我关切的是,在$ _SESSION举行成千上万的用户,导致物体的潜在成千上万可以有对服务器性能产生不利影响。 –

+0

@TraceyTun没问题,如果你正在寻找能够以真正高性能的方式工作的东西,你可以查看内存缓存,如APC或Memcached :) –

+0

感谢您的帮助。我是这个网站的noob,并且因为问这个问题而被抨击-4(不知道为什么)。但是你已经证实我目前的方法是正确的,并且通过继续使用它们,而不是使用二次解决方案浪费我的生命。非常感谢。 –

0

正如你所知道只存在两个页面上的http请求或cliks之间的对象,所以你可以保存数据,你需要无论是在$ _SESSION/$ _ COOKIE,在发送$ _ POST/$ _ GET,序列化的对象,并将其保存在数据库,文本文件或任何... AFAIK这些是你唯一的选择与PHP

+0

好的,我只是在检查以确保是这种情况。 –