如何阻止I Symfony在会话中存储与用户类相关的对象?

时间:2013-03-28 17:32:32

标签: symfony doctrine

我有一个Symfony2应用程序,当用户登录时,它具有以下过程:

  • 用户输入登录详细信息
  • 详细信息使用第三方API进行身份验证
  • 如果登录详细信息正确无误,我们会将API的大量信息同步到应用程序所需的数据库中
  • 所有信息都通过Doctrine
  • 中设置的关系附加到用户对象

问题是,当PDO会话处理程序将此信息放入会话时,它似乎存储了用户对象以及导致存储大量数据的所有关系,其中大部分数据都不需要,因为Doctrine可以延迟加载无论如何他们回来了。

这也会导致问题,因为数据量有时太大而且不适合session_value字段,即使它是LONGTEXT会导致会话损坏。

那么,有没有一种方法可以在它们进入会话之前安全地从教条实体中删除关系数据?我尝试过使用__sleep和__wake,但是没有调用它们。

1 个答案:

答案 0 :(得分:1)

实施Serializable界面并仅序列化您需要的内容。