1. 程式人生 > >redis和cookie實現購物車

redis和cookie實現購物車

<?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;

    }  

        
     
 }



?>