避免为匿名用户启动会话
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.5,现已不再维护。
读本页的更新版本用于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许可证。