避免为匿名用户启动会话

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 3.0,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

避免为匿名用户启动会话

每当您读取、写入或甚至检查会话中是否存在数据时,会话都会自动启动。这意味着如果您需要避免为某些用户创建会话cookie,这可能很困难:您必须这样做完全避免访问会话。

例如,这种情况下的一个常见问题涉及检查存储在会话中的flash消息。下面的代码将保证会话是总是开始:

1 2 3 4 5
{%在app.session.flashBag.get('notice') %}<div“flash-notice”>{{flashMessage}}div>{%endfor%}

即使用户没有登录,即使您没有创建任何flash消息,只要调用get ()(甚至有())方法flashBag将开始一个会话。这可能会损害应用程序的性能,因为所有用户都会收到一个会话cookie。为了避免这种行为,在尝试访问flash消息之前添加一个检查:

1 2 3 4 5 6 7
{%如果app.request.hasPreviousSession %}{%在app.session.flashBag.get('notice') %}<div“flash-notice”>{{flashMessage}}div>{%endfor%}{%endif%}
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。