2014-04-17 33 views
1

我想爲我正在編寫的購物車實現「記住我」功能。目前,我很簡單的保存狀態,像這樣:

$user; 
if (isset($_SESSION['user']){ 
    $user = $_SESSION['user']; 
} else { 
    $_SESSION['user'] = $user = new User(); 
} 

上面的代碼之後,如在籃下的項目數據可以通過數據庫,像這樣檢索:

$basket = Basket::obtain($user); 

我正在尋找一個處理上述邏輯的代碼片斷或類似代碼,並結合使用cookie(例如)存儲散列的cookie(在1年內)記住用戶的能力,然後服務器查詢DB以獲取$用戶對象狀態。

我不相信自己能夠很好地編寫這個功能,所以我想知道是否有任何輕量級(小尺寸)的解決方案來解決這個問題,這將使我無法重新發明輪子?我避免使用大型框架,因爲它們確實是過度殺傷性的,根據我的經驗,對我而言,學習曲線等是令人望而卻步的。

+2

擁有一個帶有userId,hash和base64編碼的json對象的表持有購物車,然後管理這個加載和存儲看起來似乎相當微不足道,你找不到?相信你自己的Jodes。我認爲你可以做到!此外,許多事情的學習曲線可能看起來很讓人失望,你節省的時間以及對這些工具,庫和框架的樂趣往往是值得的! –

+1

如果你想我可以爲你打個簡單的證明,那麼symfony http://symfony.com/doc/current/components/security/firewall.html有一個很好的實現。 – Flosculus

回答

1

你可以考慮只做一個會話類,有一些靜態方法來獲取數據放入數據庫?也同意Andresch Serj的學習曲線是值得的。

像codeigniter這樣的框架很容易學,文檔也很棒。