2010-03-23 72 views
1

将域模型的对象存储在PHP会话中是否是一种很好的做法?在PHP会话中存储域模型

这样可以避免查询和重建每个PHP对象到每个PHP请求。

是否有尺寸限制?

+1

那么两个客户端修改同一个对象呢?我的意思是,我认为这对阅读很好,但是在写作时,你必须考虑并发性 – 2010-03-23 15:01:21

+0

看到这个关于大小的问题:http://stackoverflow.com/questions/217420/ideal-php-session-size – 2010-03-23 15:04:28

+0

@Jhonny:嗯,你提出一个很好的观点......我应该找到另一个解决方案 – 2010-03-23 15:34:48

回答

2

如果您在PHP中使用OOP,您可能希望在每次请求时重建这些对象,原因有很多。总之,就像你所说的那样,存储,加载和反序列化会话中的对象,或者只是重建它们之间,性能上的差别不会太大。

当然,这也取决于你使用的类的种类。构建一个类通常在性能方面不是很成问题,除非有这么多的东西需要做(数据库查询等)

此外,这样做可能会使您的代码不易理解和/或可维护太。

是的,是有大小的限制由PHP设置的最大内存使用量在php.ini

定义所以这个问题是不是真的听命除非你确切地知道你想要什么类的存储会话是什么,他们做什么以及他们如何交互。

例如,如果您有一个在您的网站上抽象登录用户的类,将其存储在PHP会话中可能是一个好主意。但在大多数情况下,它不会。

+0

在我的情况下,这将是存储整个模型。例如,用户连接,他可以访问他的“项目”,这意味着将他当前的工作项目存储在会话中。注意:“项目”是一组约100个PHP对象(这就是为什么我不想每次都重新加载它,这是大约50个查询) – 2010-03-23 15:24:01