我有一个 Symfony2 应用程序,当用户登录时,它具有以下过程:
- 用户输入他们的登录详细信息
- 详细信息通过第 3 方 API 进行身份验证
- 如果登录详细信息正确,我们会将来自 API 的信息负载同步到应用程序需要的数据库中
- 所有信息都通过 Doctrine 中设置的关系附加到用户对象
问题是当 PDO 会话处理程序将此信息放入会话时,它似乎正在存储用户对象以及所有关系,从而导致存储大量数据,其中大部分是不需要的,因为 Doctrine 可以延迟加载它们反正。
这也会导致问题,因为数据量有时太大以至于它不适合 session_value 字段,即使它是导致会话损坏的 LONGTEXT 字段。
那么,有没有一种方法可以安全地从学说实体中删除关系数据,然后再将它们放入会话中?我试过使用 __sleep 和 __wake 但它们没有被调用。