framework.session.storage_id 的有效值是多少?
What are valid values for framework.session.storage_id?
在 Symfony 配置中有一个条目 framework.session.storage_id
。此设置也出现在 Symfony configuration documentation 的默认配置中,但没有解释。我的假设是它定义了会话数据在服务器端的存储位置。
我看到的这个条目的值包括 session.storage.mock_file
、session.storage.native
和 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
- for legacy apps
从开发人员的角度来看,有一个 session
服务可以抽象化使用会话。 session
服务依赖于某些 会话存储服务 。 会话存储从PHP的角度实现会话管理(例如调用session_start()
函数)。 存储 还依赖于某些会话处理程序。 Handler 是 \SessionStorage
的实现,它说明会话的物理存储方式和位置。
This three layer design 允许创建 存储 用于测试,它根本不调用 session_start()
并且不使用处理程序 (session.storage.mock_file
)。或者创建可以从任何地方存储和加载会话的 处理程序 (session.storage.native
)。 session.storage.php_bridge
解决了 session_start()
被外部 PHP 代码调用的情况(不是 Symfony session storage)。
希望看得清楚。
Symfony 中的会话管理基于两个主要规则。
- Symfony 必须启动会话。
- Symfony 会话旨在取代 PHP 本机函数
session_*()
和 $_SESSION
全局函数的使用。
但是,也存在一些例外情况。有时可能需要将 Symfony 集成到遗留应用程序中,它以 session_start()
启动会话。
使用 session.storage.php_bridge
指令,您可以使用特殊网关管理会话,该网关旨在允许 Symfony 处理在框架外启动的会话。
为了使使用会话的代码可测试,session.storage.mock_file
指令允许模拟 PHP 会话的流程而无需真正启动它。
在 Symfony 配置中有一个条目 framework.session.storage_id
。此设置也出现在 Symfony configuration documentation 的默认配置中,但没有解释。我的假设是它定义了会话数据在服务器端的存储位置。
我看到的这个条目的值包括 session.storage.mock_file
、session.storage.native
和 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
- for legacy apps
从开发人员的角度来看,有一个 session
服务可以抽象化使用会话。 session
服务依赖于某些 会话存储服务 。 会话存储从PHP的角度实现会话管理(例如调用session_start()
函数)。 存储 还依赖于某些会话处理程序。 Handler 是 \SessionStorage
的实现,它说明会话的物理存储方式和位置。
This three layer design 允许创建 存储 用于测试,它根本不调用 session_start()
并且不使用处理程序 (session.storage.mock_file
)。或者创建可以从任何地方存储和加载会话的 处理程序 (session.storage.native
)。 session.storage.php_bridge
解决了 session_start()
被外部 PHP 代码调用的情况(不是 Symfony session storage)。
希望看得清楚。
Symfony 中的会话管理基于两个主要规则。
- Symfony 必须启动会话。
- Symfony 会话旨在取代 PHP 本机函数
session_*()
和$_SESSION
全局函数的使用。
但是,也存在一些例外情况。有时可能需要将 Symfony 集成到遗留应用程序中,它以 session_start()
启动会话。
使用 session.storage.php_bridge
指令,您可以使用特殊网关管理会话,该网关旨在允许 Symfony 处理在框架外启动的会话。
为了使使用会话的代码可测试,session.storage.mock_file
指令允许模拟 PHP 会话的流程而无需真正启动它。