购物车的设计
购物车中存储的内容:
所购商品ID 和 购买数量.
购物车的持久化存储, 如何实现?
(购物车的数据存储在何处?)
范例的购物车须要实现的效果(功能).
a, 相同的浏览器, 在未登录的情形的下, 可以将购物车商品保存很永劫光. 购物车与浏览器绑定. cookie技能
b, 在登录情形下. 任何浏览器, 任何时候, 都可以找到购物车中的商品. 购物车与会员绑定. 数据库持久化存储
方案:
会员上岸时, 存储在数据表中. 会员未登录时,存储在cookie中.
由未登录, 转到登录状态时, 将cookie中的购物车商品, 同步到当前购物车中.
反过来(退出登录), 不须要同步.
购物车(工具,类)的实现:
购物车的基本功能:增加商品、删除某个商品、更新某个商品的数量、清空购物车
数据的持久化:在购物车工具, 被销毁开释时, 将所购商品存储起来
数据的初始化
为了便于管理,这里将全部的购物车操作, 封装一个工具来完成
这里实例为PHP措辞中TP框架内的实现
// 存放全部商品
private $goods_list = [];
设计该属性, 存储全部购物车的商品, 紧张的属性. 关联数组构造
其键: 利用商品id表示. 其值, 利用购买数量表示.
[3] = 10;, id为3的商品, 购买了10件
添加商品:
已经购买过, 修正购买数量即可
没有买过, 添加商品即可
更新购物车
删除、清空操作
在PHP开拓里把所有操作封装成工具来完成的
数据持久化编码实现
在析构方法中, 完成对数据持久化的处理. 析构是自动被调用, 可以担保一定会实行.
选择将数据序列化后, 存储到cookie或数据表中
在析构方法中完成调用
数据初始化
初始化数据的方法
判断是否登录, 选择从 数据库 还是 cookie中拿数据:
反序列化后, 设置$cart->goods_list.
初始化步骤
布局方法中调用初始化
担保一个会员只有一个购物车
可以用单例模式实现
PHP中的单例模式
关于购物车类的基本功能和实现就写到这了,紧张理解设计思路,还有其他关于购物车的功能根据业务逻辑连续添加即可。