大佬教程收集整理的这篇文章主要介绍了如何在 Symfony 5.3 上的控制器中获取 Session 对象?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
对于在 Symfony 5.3 中的控制器中检索当前会话对象的“正确”方式,我有点困惑。 current documentation 表示将参数类型提示为 %merge
。但是,此 Symfony blog post 表示 SessionInterface
已被弃用,以支持使用 SessionInterface
。
在服务中,很明显我应该注入 requestStack
并调用 requestStack
。但是,在大多数控制器方法中,我已经注入了 $requestStack->getSession()
对象,该对象也有一个似乎有效的 request
方法。
是否可以从 getSession()
对象获取会话,或者我应该在我的控制器方法中注入 request
和 requestStack
吗(这感觉就像几乎重复)
快速代码示例:
request
文档尚未更新。*
在 Symfony 5.3+ 中,在控制器上下文之外,您应该从 requestStack
获取会话,正如您正在做的那样,它在博客上有描述。它说明了为什么从 request
对象获取会话数据感觉错误的原因,以及为什么 SessionInterface
被弃用而支持 requestStack
:
如果您已经获得 request
对象(例如您在控制器上下文中),您也可以直接从那里获得它,因为 request::getSession()
没有已弃用。这很好,这只是在框架内工作的便利性的一部分。
但如果不是,请直接获取 requestStack
而不是 SessionInterface
。
public function myRoute(requestStack $requestStack): Response
{
$requestStack->getSession();
}
(如果你这样做,你也可以从那里获取 request
对象,用类似服务的对象交换数据对象的注入来获取该数据)。
* 请记住,文档本身是开源的,他们欢迎拉取请求以保持更新!
以上是大佬教程为你收集整理的如何在 Symfony 5.3 上的控制器中获取 Session 对象?全部内容,希望文章能够帮你解决如何在 Symfony 5.3 上的控制器中获取 Session 对象?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。