会话

编辑该页面

会话

ob娱乐下载Symfony提供了一个会话对象和几个实用程序,您可以使用它来存储用户请求之间的信息。

配置

会议提供的HttpFoundation组件包含在所有Symfony应用程序,无论你如何安装它。ob娱乐下载在使用会话之前,检查他们的默认配置:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9 10 11 12
#配置/包/ framework.yaml框架:#允许会话的支持。注意,会议才会开始如果你读或写。#删除或注释本节明确禁用会话的支持。会话:#服务用于会话的ID存储# NULL意味着Symfony使用ob娱乐下载PHP默认会话机制handler_id:#提高用于会话cookie的安全性cookie_secure:汽车cookie_samesite:宽松的storage_factory_id:session.storage.factory.native

设置handler_id配置选项意味着Symfony将ob娱乐下载使用本机PHP会话机制。会话元数据文件将存储在Symfony应用程序,在一个目录由PHP控制。ob娱乐下载虽然这通常简化事情,一些会话过期相关选项可能不会像预期的那样工作,如果其他应用程序写入相同的目录中有短马克思一生中设置。

如果你喜欢,你可以使用session.handler.native_file服务handler_id让Symfonob娱乐下载y管理会议本身。另一个有用的选项是save_path,它定义了目录Symfony将存储会话的元数据文件:ob娱乐下载

  • YAML
  • XML
  • PHP
1 2 3 4 5 6
#配置/包/ framework.yaml框架:会话:#……handler_id:“session.handler.native_file”save_path:' % kernel.project_dir % / var /会议/ % kernel.environment % '

看看Symfony的配置更多ob娱乐下载地了解其他可用的引用会话配置选项。你也可以会话存储在一个数据库中

基本用法

会话可以通过请求对象和RequestStack服务。ob娱乐下载Symfony注入的request_stack服务在服务和控制器如果你type-hint论证RequestStack:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31
使用ob娱乐下载\组件\HttpFoundation\RequestStack;SomeService{私人美元requestStack;公共函数__construct(RequestStack美元requestStack){美元- >requestStack =美元requestStack;/ /访问会话在构造函数中*不*建议/ /它可能没有访问或导致不必要的副作用/ / $ this - >会话= $ requestStack - > getSession ();}公共函数someMethod(){美元会话=美元- >requestStack- >getSession ();/ /将一个属性存储在会话为以后重用美元会话- >集(“属性名称”,“属性-值”);/ /获取一个属性的名字美元喷火=美元会话- >get (“foo”);/ /第二个参数是属性不存在时返回的值美元过滤器=美元会话- >get (“过滤器”[]);/ /……}}

存储属性保留在会话用户会话的其余部分。默认情况下,会话属性键值对的管理AttributeBag类。

避免对匿名用户会话开始

会话是自动启动时读、写,甚至检查会话中的数据的存在。这可能伤害你的应用程序的性能,因为所有的用户将获得一个会话cookie。为了防止这一点,你必须的完全避免访问会话。

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。
ob娱乐下载Symfony 6.2支持通过苏禄人
ob娱乐下载Symfony 6.2支持通过Les-Tilleuls.coop