Session Symfony 2:会话和存储之间的区别?

Session Symfony 2:会话和存储之间的区别?,session,symfony,Session,Symfony,有人能给我解释一下Symfony 2中“会话”和“存储”的区别吗 我正在使用PdoSessionStorage,我看不出以下各项之间存在任何关系: Symfony\Component\HttpFoundation\Session Symfony\Component\HttpFoundation\Session\PdoSessionStorage 。。。这两个类似乎都是实例 一个表示会话,另一个表示会话的存储方式。PdoSessionStorage将通过数据库上的PDO处理存储。这是一种将会话

有人能给我解释一下Symfony 2中“会话”和“存储”的区别吗

我正在使用PdoSessionStorage,我看不出以下各项之间存在任何关系:

  • Symfony\Component\HttpFoundation\Session
  • Symfony\Component\HttpFoundation\Session\PdoSessionStorage

。。。这两个类似乎都是实例

一个表示会话,另一个表示会话的存储方式。PdoSessionStorage将通过数据库上的PDO处理存储。这是一种将会话的实际概念和内容与存储分离的方法,因为它可以以不同的方式存储

你为什么担心这个


此外,会话处理似乎已被重构,我认为您没有使用最新版本的symfony。但无论如何,您都不应该担心这些类。

我使用的是SF 2.0。但无论如何,我不明白SF是如何处理这两个类的。我尝试了一些方法:手动禁用PdoSessionStorage中的“读取”和“写入”函数(仅用于测试目的)。因此,我不能访问受限页面,因为SF无法再读取我的会话数据。但是,即使我正确地重定向到登录页面,这个请求的HTTP响应(在Firebug中看到)也会显示这个受限页面的完整HTML内容。这是我不明白的。我认为调试您正在做的事情可能是一件相当复杂的事情。我建议你采取一种不同于在Symfony中编辑类的方法,它似乎让你困惑,而不是帮助你。禁用会话存储似乎根本不是放置或移除访问障碍的更直接的方法,在更高的抽象级别上可能有许多方法更容易遵循,其中包括您自己编写的代码。