redis和cookie实现购物车
2016-12-05 18:34
471 查看
<?php
header("content-type:text/html;charset=utf8");
class CartFactory{
public static function create($type){
return new $type;
}
}
interface Cart{
public function connects();
public function add_cart($user_name,$goods_id,$num);
public function get_cart($user_name);
public function rm_cart($user_name,$goods_id);
public function clear_cart($user_name);
}
//redis
class GetRedis implements Cart{
public function __construct(){
}
public function connects(){
$redis = new Redis();
$redis->connect("127.0.0.1",6379);
return $redis;
}
//增商品
public function add_cart($user_name,$goods_id,$num)
{
$redis = $this->connects();
$redis->$redis->hIncrBy($user_name, $goods_id, $num);
}
//获取商品
public function get_cart($user_name){
$redis = $this->connects();
$list=$redis->hgetall($user_name);
return $list;
}
//删除单个商品
public function rm_cart($user_name,$goods_id){
$redis = $this->connects();
$redis->hdel($user_name,$goods_id);
return true;
}
//清空购物车
public function clear_cart($user_name){
$redis = $this->connects();
$keys=$redis->hkeys($user_name);
foreach ($keys as $val) {
$redis->hdel($user_name,$val);
}
return true;
}
}
//cookie
class Cookie implements Cart {
public function connects() {
}
//增商品
public function add_cart($user_name,$goods_id,$num)
{
if (isset($_COOKIE[$user_name])) {
$arr = unserialize($_COOKIE[$user_name]);
$arr[] =array('goods_id'=>$goods_id,"num"=>$num);
setcookie($user_name,serialize($arr));
}else{
$arr = array();
$arr[] = array('goods_id'=>$goods_id,"num"=>$num);
setcookie($user_name,serialize($arr));
}
}
//获取商品
public function get_cart($user_name){
if (isset($_COOKIE[$user_name])) {
$cart_list = unserialize($_COOKIE[$user_name]);
return $cart_list;
}else{
return false;
}
}
//删除单个商品
public function rm_cart($user_name,$goods_id){
$arr= $this->get_cart($user_name);
foreach ($arr as $key => $va) {
if ($va['goods_id']== $goods_id) {
unset($arr[$key]);
setcookie($user_name,serialize($arr));
return;
}
}
}
//清空购物车
public function clear_cart($user_name){
setcookie($user_name,'');
return true;
}
}
?>
header("content-type:text/html;charset=utf8");
class CartFactory{
public static function create($type){
return new $type;
}
}
interface Cart{
public function connects();
public function add_cart($user_name,$goods_id,$num);
public function get_cart($user_name);
public function rm_cart($user_name,$goods_id);
public function clear_cart($user_name);
}
//redis
class GetRedis implements Cart{
public function __construct(){
}
public function connects(){
$redis = new Redis();
$redis->connect("127.0.0.1",6379);
return $redis;
}
//增商品
public function add_cart($user_name,$goods_id,$num)
{
$redis = $this->connects();
$redis->$redis->hIncrBy($user_name, $goods_id, $num);
}
//获取商品
public function get_cart($user_name){
$redis = $this->connects();
$list=$redis->hgetall($user_name);
return $list;
}
//删除单个商品
public function rm_cart($user_name,$goods_id){
$redis = $this->connects();
$redis->hdel($user_name,$goods_id);
return true;
}
//清空购物车
public function clear_cart($user_name){
$redis = $this->connects();
$keys=$redis->hkeys($user_name);
foreach ($keys as $val) {
$redis->hdel($user_name,$val);
}
return true;
}
}
//cookie
class Cookie implements Cart {
public function connects() {
}
//增商品
public function add_cart($user_name,$goods_id,$num)
{
if (isset($_COOKIE[$user_name])) {
$arr = unserialize($_COOKIE[$user_name]);
$arr[] =array('goods_id'=>$goods_id,"num"=>$num);
setcookie($user_name,serialize($arr));
}else{
$arr = array();
$arr[] = array('goods_id'=>$goods_id,"num"=>$num);
setcookie($user_name,serialize($arr));
}
}
//获取商品
public function get_cart($user_name){
if (isset($_COOKIE[$user_name])) {
$cart_list = unserialize($_COOKIE[$user_name]);
return $cart_list;
}else{
return false;
}
}
//删除单个商品
public function rm_cart($user_name,$goods_id){
$arr= $this->get_cart($user_name);
foreach ($arr as $key => $va) {
if ($va['goods_id']== $goods_id) {
unset($arr[$key]);
setcookie($user_name,serialize($arr));
return;
}
}
}
//清空购物车
public function clear_cart($user_name){
setcookie($user_name,'');
return true;
}
}
?>
相关文章推荐
- mac brew install redis 报错
- 使用redis创建自己的分布式锁
- (二)Windows下Redis的主从复制
- redis cluster php 客户端 predis
- 个人认为比较不错的文章汇总
- Redis集群方案应该怎么做
- Redis Cluster搭建方法简介22211111
- redis集群之REDIS CLUSTER
- 如何搭建redis集群
- Ubuntu安装redis
- redis在项目中的应用
- Redis键值(Key-Value)设计案例
- 实现Redis的主从复制配置
- CentOS完美搭建Redis3.0集群并附测试
- 第十二章 redis-cluster搭建(redis-3.2.5)
- Redis指南
- centos 6.5 安装、配置redis
- redis学习教程之一基本命令
- scrapy-redis(五):scrapy中信号工作的原理
- redis中redis.conf配置文件解析