在 Symfony 配置中有一个条目framework.session.storage_id
。此设置也出现在默认配置中Symfony 配置文档 http://symfony.com/doc/current/reference/configuration/framework.html但没有解释。我的假设是它定义了会话数据在服务器端的存储位置。
我在该条目中看到的值包括session.storage.mock_file
, session.storage.native
and session.storage.filesystem
。我不确定这些值的确切含义(例如,模拟文件和文件系统之间有什么区别?),并且还认为这不是可能值的完整列表。
那么这个配置键到底控制什么以及哪些值是有效的?
有效值framework.session.storage_id
如下:
-
session.storage.mock_file
- 供测试用。它根本不启动会话。
-
session.storage.filesystem
- 供测试用。它是一个别名session.storage.mock_file
.
-
session.storage.native
- 使用定义的会话处理程序的默认实现
-
session.storage.php_bridge
- 对于旧版应用程序 http://symfony.com/doc/current/cookbook/session/php_bridge.html
从开发者的角度来看,有一个session
抽象会话工作的服务。session
服务取决于一些会话存储服务. 会话存储从PHP角度实现会话管理(调用session_start()
函数为例)。Storage也取决于一些会话处理程序. Handler正在实施\SessionStorage
它告诉我们会话将如何以及在哪里物理存储。
这个三层设计 https://github.com/symfony/symfony/blob/2.6/src/Symfony/Bundle/FrameworkBundle/Resources/config/session.xml允许创建storage用于测试不调用session_start()
根本不使用处理程序(session.storage.mock_file
)。或者创建handler可以从任何地方存储和加载会话(session.storage.native
). session.storage.php_bridge
解决情况时session_start()
由外部 PHP 代码调用(不是由 Symfony会话存储).
我希望能够清楚地理解。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)