?php
/**
* 購物車單例類
*
* @author YING
* @param void
* @return void
*/
class CartSingleton
{
//定義一個(gè)靜態(tài)的私有變量
static private $_instance=null;
private $redis=null;
//私有化的構(gòu)造方法
private final function __construct()
{
//實(shí)例化
$this->redis=new Redis();
$this->redis->connect('127.0.0.1',6379);
}
//私有化的克隆方法
private function __clone()
{
}
//公有的靜態(tài)方法
static public function getInstance()
{
if(!(self::$_instance instanceof self)){
self::$_instance = new CartSingleton();
}
return self::$_instance;
}
/**
* 加入購物車
*
* @author YING
* @param userId goodsName goodsId 用戶id 商品名稱 商品id
* @return int
*/
public function addCart($userId,$goodsName,$goodsId)
{
$hashKey="user_".$userId; //hash鍵名
$key=$goodsId."_".$goodsName;//鍵名
//加入
return $this->redis->hIncrBy($hashKey,$key,1);
}
/**
* 單刪
*
* @author YING
* @param userId goodsId
* @return
*/
public function cartDelOne($userId,$goodsId)
{
$hashKey="user_".$userId; //hash鍵名
$key=$goodsId;//鍵名
//刪除
return $this->redis->hDel($hashKey,$key);
}
/**
* 清空購物車
*
* @author YING
* @param userId
* @return void
*/
public function cartDelAll($userId)
{
$hashKey="user_".$userId; //hash鍵名
//刪除
return $this->redis->del($hashKey);
}
/**
* 購物車列表
*
* @author YING
* @param userId
* @return void
*/
public function cartList($userId)
{
$hashKey="user_".$userId; //hash鍵名
//查詢數(shù)據(jù)
return $this->redis->hGetAll($hashKey);
}
}
//實(shí)例化類
$obj=CartSingleton::getInstance();
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php+redis數(shù)據(jù)庫程序設(shè)計(jì)技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP基本語法入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》