【问题标题】:Store domain model in PHP session在 PHP 会话中存储域模型
【发布时间】:2010-03-23 14:59:08
【问题描述】:

在 PHP 会话中存储域模型的对象是一个好习惯吗?

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

有大小限制吗?

【问题讨论】:

  • 两个客户端修改同一个对象怎么办?我的意思是,我认为它对阅读有好处,但是在写作时,你必须考虑到并发性
  • 查看这个关于尺寸的问题:stackoverflow.com/questions/217420/ideal-php-session-size
  • @Jhonny : 嗯,你说得很好......我应该找到另一个解决方案

标签: php session domain-model


【解决方案1】:

如果您在 PHP 中使用 OOP,出于多种原因,您可能希望在每次请求时都重构这些对象。 总而言之,在存储、加载和反序列化会话中的对象(如您所建议的那样)或只是重建它们之间不会有太大的性能差异。

当然,这在很大程度上取决于您使用的类的类型。构造一个类在性能方面通常不会有太大问题,除非需要做很多事情(数据库查询等)

此外,这样做可能会降低您的代码的可理解性和/或可维护性。

是的,在 php.ini 中设置的 PHP 的最大内存使用量定义了一个大小限制

因此,除非您确切知道要在会话中存储的类是什么、它们做什么以及它们如何交互,否则这个问题实际上是无法回答的。

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

【讨论】:

  • 在我的情况下,这将存储整个模型。例如,用户连接,他可以访问他的“项目”,这意味着将他当前的工作项目存储在会话中。注意:“项目”是一组大约 100 个 PHP 对象(这就是为什么我不想每次都重新加载它,这大约是 50 个查询)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-26
  • 2017-12-06
  • 2015-02-20
  • 2012-01-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多