2015-05-27 29 views
1

我正在爲選擇使用db在magento中進行會話處理的公司工作。具體而言,在/app/etc/local.xml有此項:magento使用<session_save> db值寫入或讀取會話

<session_save><![CDATA[db]]></session_save> 

據我所知,該數據被保存在表core_session。但是,我不熟悉如何讀寫會話對象。

session_start()很容易,我只是寫

$_SESSION['status']='OK'; //write 
$status= $_SESSION['status']; //read 

什麼是Magento的時候使用db作爲會話存儲方法的等效方法?我認爲這是一種類方法。謝謝。

回答

5

Magento中的每個模塊都可以擁有自己的會話對象,用於保存會話中的名稱空間值。例如,設置變量foo_bar「核心」會話命名空間,所有你需要做的就是調用

Mage::getSingleton('core/session')->setFooBar('Some Value'); 

要做到同樣的事情,在「客戶」會話命名空間,

Mage::getSingleton('customer/session')->setFooBar('Some Value'); 

然後你會先

Mage::getSingleton('core/session')->getFooBar(); 
Mage::getSingleton('customer/session')->getFooBar(); 

獲取這些值的基本思想是Magento的爲您提供了這些會議的對象,所以你不必擔心啓動/停止會議,或管理合作$_SESSION。在幕後,Magento仍然使用$_SESSIONsession_start - 但它爲您處理這些細節,因此您可以像使用Magento中的任何模型一樣使用會話模型/單例。

您還可能會發現this answer有用。