购物车的设计

购物车中存储的内容:

所购商品ID 和 购买数量.

购物车cookiephp干货商城开辟中购物车的设计功效实现 GraphQL

购物车的持久化存储, 如何实现?

(购物车的数据存储在何处?)

范例的购物车须要实现的效果(功能).

a, 相同的浏览器, 在未登录的情形的下, 可以将购物车商品保存很永劫光. 购物车与浏览器绑定. cookie技能

b, 在登录情形下. 任何浏览器, 任何时候, 都可以找到购物车中的商品. 购物车与会员绑定. 数据库持久化存储

方案:

会员上岸时, 存储在数据表中. 会员未登录时,存储在cookie中.

由未登录, 转到登录状态时, 将cookie中的购物车商品, 同步到当前购物车中.

反过来(退出登录), 不须要同步.

购物车(工具,类)的实现:

购物车的基本功能:增加商品、删除某个商品、更新某个商品的数量、清空购物车

数据的持久化:在购物车工具, 被销毁开释时, 将所购商品存储起来

数据的初始化

为了便于管理,这里将全部的购物车操作, 封装一个工具来完成

这里实例为PHP措辞中TP框架内的实现

// 存放全部商品

private $goods_list = [];

设计该属性, 存储全部购物车的商品, 紧张的属性. 关联数组构造

其键: 利用商品id表示. 其值, 利用购买数量表示.

[3] = 10;, id为3的商品, 购买了10件

添加商品:

已经购买过, 修正购买数量即可

没有买过, 添加商品即可

更新购物车

删除、清空操作

在PHP开拓里把所有操作封装成工具来完成的

数据持久化编码实现

在析构方法中, 完成对数据持久化的处理. 析构是自动被调用, 可以担保一定会实行.

选择将数据序列化后, 存储到cookie或数据表中

在析构方法中完成调用

数据初始化

初始化数据的方法

判断是否登录, 选择从 数据库 还是 cookie中拿数据:

反序列化后, 设置$cart->goods_list.

初始化步骤

布局方法中调用初始化

担保一个会员只有一个购物车

可以用单例模式实现

PHP中的单例模式

关于购物车类的基本功能和实现就写到这了,紧张理解设计思路,还有其他关于购物车的功能根据业务逻辑连续添加即可。