与遗留会话集成

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.3,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

与遗留会话集成

有时可能需要将Symfony集成到您最初没有所需控制级别的遗留应用程序中。欧宝娱乐app下载地址

正如在其他地方所述,Symfony会话旨在欧宝娱乐app下载地址取代PHP的本机会话session_ * ()的功能和使用_SESSION美元superglobal。此外,Symfony必须启动会话。欧宝娱乐app下载地址

然而,当确实存在不可能这样做的情况时,您可以使用一个特殊的存储桥PhpBridgeSessionStorage它的设计目的是允许Symfony使用在Symfony 欧宝娱乐app下载地址HttpFoundation组件外部启动的会话。警告您,如果您不小心,某些事情可能会中断这个用例:例如,遗留应用程序擦除_SESSION美元

这个的典型用法是这样的:

12 3 4 5 6 7 8 9 10 11 12 13
使用欧宝娱乐app下载地址组件HttpFoundation会话会话使用欧宝娱乐app下载地址组件HttpFoundation会话存储PhpBridgeSessionStorage//遗留应用程序配置会话报错(“session.save_handler”“文件”);报错(“session.save_path”“/ tmp”);session_start ();//让Symf欧宝娱乐app下载地址ony与现有会话进行交互会话会话(PhpBridgeSessionStorage ());// 欧宝娱乐app下载地址symfony现在将与现有的PHP会话交互会话->开始();

这将允许您开始使用Symfony会话API,并允许将应用程序迁移到Symfon欧宝娱乐app下载地址y会话。

请注意

欧宝娱乐app下载地址Symfony会话将属性等数据存储在特殊的“Bags”中,这些“Bags”使用键_SESSION美元superglobal。这意味着Symfony会话不能访问中欧宝娱乐app下载地址的任意键_SESSION美元这可以由遗留应用程序设置,尽管所有的_SESSION美元保存会话时,也会保存会话内容。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。
欧宝娱乐app下载地址Symfony 5.3支持通过JoliCode