2

我有一个 Symfony2 应用程序,它代表一个不需要持久会话的宁静应用程序。

对于应用程序的每个请求,给定默认会话配置,并假设客户端忽略会话 cookie,在默认会话保存路径中创建一个新的会话文件app/cache/<env>/sessions

该应用程序每天会收到许多请求,从而导致大量不需要的会话文件。运行rm -Rf app/cache/prod/session/*需要几分钟才能完成。

如果应用程序不存储任何会话数据,我会更喜欢。

我已尝试将应用程序配置会话保存路径设置为/dev/nullor /dev/null/sessions,但这会导致异常,因为目录已经存在(for /dev/null)或由于指定的路径不是目录(for /dev/null/<anything>)。

framework:
    session:
        save_path: /dev/null

从阅读会话文档中我能看到的最好的事情是使会话无效,这会清除所有会话属性并重新生成会话 ID。这不会让我处于没有会话和没有持久会话文件的状态。

我可以让 Symfony2 不为请求存储任何会话数据吗?

4

1 回答 1

1

您可以定义自己的 Session 处理程序并session用它替换服务别名:

services:
    session:
        class: Path\To\Your\Session\Class

您可以使用标准会话类检查实现Symfony\Component\HttpFoundation\Session\Session

于 2012-09-27T15:13:32.300 回答