Symfony 应用程序或 PHP 可以同时管理多少个会话?

How many sessions Symfony app or PHP can manage at same time?

假设我有一个共享两个主要包的 Symfony2 应用程序:OneBundleTwoBundleOneBundle 充当用于管理目的的后端,TwoBundle 是用于外部的 RESTful API。

OneBundle 的流程是每个人都知道的:管理员登录、操作和注销或让应用程序保持打开状态或直接关闭浏览器或以任何其他方式关闭应用程序,在这种情况下会话应该被销毁或按照 config.yml 中的定义进行垃圾处理(会话的 24 小时过期日期)。

现在 TwoBundle 有一个不同的流程:用户登录 Salesforce 并获得一个令牌,该令牌传回 API 端点,我创建一个新会话来存储令牌和其他一些信息,用户注销或关闭客户端应用程序或其他东西,该会话应该持续一周而不是像第一个那样持续 24 小时。

同一个 Symfony2 应用程序能否共享两个不同的会话,即一个会话用于 OneBundle,第二个会话用于 TwoBundle? PHP 允许吗?你如何处理这个业务规则?我可以将一个会话存储为默认保存处理程序,将另一个会话存储为 PdoSessionHandler 吗?

可以通过在security.yml文件中设置两个防火墙来完成。一个用于 "OneBundle",另一个用于 "TwoBundle" 如果需要,您可以使用不同的安全处理程序(第一个是 FOSUser,第二个是 Native),因此 symfony 安全性非常灵活。

[编辑]

您可以在 symfony 配置中查看这些页面: