除了简单的属性外,Laravel的Session Facade还有处理Bags的方法(参见https://github.com/laravel/framework/blob/master/src/Illuminate/Session/Store.php#L501)。什么样的用例展示了袋子有用的时候?我试图找出它们为什么存在以及它们为我的应用程序提供了什么好处....也许我应该使用它们?
它只是管理会话中某些内容的一种方式吗?
答案 0 :(得分:1)
会话包通常用于避免全局会话命名空间中的命名空间压缩/冲突 - 也就是说,默认情况下Laravel允许任何程序员读/写会话
Session::set('key','value');
Session::get('key');
在大型应用程序中 - 尤其是具有大量全局不同开发人员的应用程序(即使用来自不同源的多个包的任何项目)将会话分离到命名空间的能力有助于不同的包声明会话的不同密钥。相反,每个包(或应用程序)都可以声明一个唯一命名的"会话包",然后根据需要在包中命名变量。
此外,in Symfony会话包有助于测试会话变量,因为应用程序纯粹通过抽象而不是通过$_SESSION
超级全局来访问会话。在这种情况下,会话包对Laravel来说不那么重要,因为Laravel完全支持PHP的内部会话处理。