redis和cookie實現購物車
阿新 • • 發佈:2019-02-19
<?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;
}
}
?>