乾貨!商城開發中購物車的設計、功能實現

編程語言 PHP 鵬博網客 鵬博網客 2017-09-26

購物車|商城類項目在程序開發中必不可少一個環節,這裡就來介紹下通常情況的設計及編碼實現

乾貨!商城開發中購物車的設計、功能實現

購物車的設計

購物車中存儲的內容:

所購商品ID 和 購買數量.

購物車的持久化存儲, 如何實現?

(購物車的數據存儲在何處?)

典型的購物車需要實現的效果(功能).

a, 相同的瀏覽器, 在未登錄的情況的下, 可以將購物車商品保存很長時間. 購物車與瀏覽器綁定. cookie技術

b, 在登錄情況下. 任何瀏覽器, 任何時候, 都可以找到購物車中的商品. 購物車與會員綁定. 數據庫持久化存儲

方案:

會員登陸時, 存儲在數據表中. 會員未登錄時,存儲在cookie中.

由未登錄, 轉到登錄狀態時, 將cookie中的購物車商品, 同步到當前購物車中.

反過來(退出登錄), 不需要同步.

購物車(對象,類)的實現:

購物車的基本功能:增加商品、刪除某個商品、更新某個商品的數量、清空購物車

數據的持久化:在購物車對象, 被銷燬釋放時, 將所購商品存儲起來

數據的初始化

為了便於管理,這裡將全部的購物車操作, 封裝一個對象來完成

這裡實例為PHP語言中TP框架內的實現

// 存放全部商品

private $goods_list = [];

設計該屬性, 存儲全部購物車的商品, 主要的屬性. 關聯數組結構

其鍵: 使用商品id表示. 其值, 使用購買數量表示.

[3] = 10;, id為3的商品, 購買了10件

添加商品:

乾貨!商城開發中購物車的設計、功能實現

已經購買過, 修改購買數量即可

沒有買過, 添加商品即可


更新購物車

乾貨!商城開發中購物車的設計、功能實現

刪除、清空操作

乾貨!商城開發中購物車的設計、功能實現

在PHP開發裡把所有操作封裝成對象來完成的

數據持久化編碼實現

在析構方法中, 完成對數據持久化的處理. 析構是自動被調用, 可以保證一定會執行.

選擇將數據序列化後, 存儲到cookie或數據表中

乾貨!商城開發中購物車的設計、功能實現

乾貨!商城開發中購物車的設計、功能實現

在析構方法中完成調用

數據初始化

初始化數據的方法

判斷是否登錄, 選擇從 數據庫 還是 cookie中拿數據:

反序列化後, 設置$cart->goods_list.

乾貨!商城開發中購物車的設計、功能實現

初始化步驟

乾貨!商城開發中購物車的設計、功能實現

構造方法中調用初始化

保證一個會員只有一個購物車

可以用單例模式實現

乾貨!商城開發中購物車的設計、功能實現

PHP中的單例模式

關於購物車類的基本功能和實現就寫到這了,主要理解設計思路,還有其他關於購物車的功能根據業務邏輯繼續添加即可。

相關推薦

推薦中...