本文實例講述了PHP+redis實現的購物車單例類。分享給大家供大家參考,具體如下:
<?php /** * 購物車單例類 * * @author YING * @param void * @return void */ class CartSingleton { //定義一個靜態的私有變量 static private $_instance=null; private $redis=null; //私有化的構造方法 private final function __construct() { //實例化 $this->redis=new Redis(); $this->redis->connect('127.0.0.1',6379); } //私有化的克隆方法 private function __clone() { } //公有的靜態方法 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鍵名 //查詢數據 return $this->redis->hGetAll($hashKey); } } //實例化類 $obj=CartSingleton::getInstance();
希望本文所述對大家PHP程序設計有所幫助。