magento使用<session_save> db值写入或读取会话

Oli*_*ams 1 php session magento

我正在为一家选择使用db进行magento会话处理的公司工作.具体来说,在/app/etc/local.xml中有这样的条目:

    <session_save><![CDATA[db]]></session_save>
Run Code Online (Sandbox Code Playgroud)

我知道数据正在保存在表格中core_session.但是,我不熟悉如何读取和写入会话对象.

session_start()这很容易,我只是写

$_SESSION['status']='OK'; //write
$status= $_SESSION['status']; //read
Run Code Online (Sandbox Code Playgroud)

当magento db用作会话存储方法时,等效方法是什么?我认为这是一种类方法.谢谢.

Ala*_*orm 5

Magento中的每个模块都可以拥有自己的会话对象,用于将命名空间值保存到会话中或从会话中保存.例如,要foo_bar在"核心"会话命名空间中设置变量,您需要做的就是调用

Mage::getSingleton('core/session')->setFooBar('Some Value');
Run Code Online (Sandbox Code Playgroud)

要在"customer"会话命名空间中执行相同的操作,

Mage::getSingleton('customer/session')->setFooBar('Some Value');
Run Code Online (Sandbox Code Playgroud)

然后,您将使用获取这些值

Mage::getSingleton('core/session')->getFooBar();
Mage::getSingleton('customer/session')->getFooBar();
Run Code Online (Sandbox Code Playgroud)

基本思想是Magento为您提供了这些会话对象,因此您无需担心启动/停止会话或管理冲突$_SESSION.在幕后Magento仍在使用$_SESSIONsession_start- 但它为你处理这些细节,所以你可以使用会话模型/单身,就像你在Magento中使用任何模型一样.

你也可能觉得这个答案很有用.