no me fué muy bién, traté de implementarlo con los ejemplos de php.net pero no funcionó
,
alguien caritativo me podría mostrar un ejemplo de complementación de como usar __sleep y __wakeup para cerrar y abrir la conexion a la base de datos cuando se serialize y se reconstruya el objeto..
la clase carrito es de este estilo:
Código PHP:
class shoppingCart {
private $db;
private $basket_count;
private $basket_item_id;
private $basket_item_name;
private $basket_item_quantity;
private $basket_item_data;
private $basket_item_price;
private $basket_item_tax;
private $basket_item_color;
private $basket_item_size;
public function __construct($db) {
$this->db = $db;
$this->basket_count=0;
}
public function Add_Item($ID,$name,$quantity=1) {
$this->basket_item_id[$this->basket_count]=$ID;
$this->basket_item_name[$this->basket_count]=$name;
$this->basket_item_quantity[$this->basket_count]=$quantity;
$this->basket_count++;
return ($this->basket_count-1);
}
public function Del_Item($pos) {
$this->basket_item_id[$pos]='';
}
public function Get_Image(){
//query para obtener imagen del producto
}
public function Get_Item_ID($pos) {
return $this->basket_item_id[$pos];
}
}
forma de uso :
Código PHP:
if(isset($_SESSION["cart"]) && $_SESSION["cart"]!=''){
$cart= unserialize($_SESSION["cart"]);
} else {
$cart= new shoppingCart($db); // $db objeto de abstracción base de dato
}
luego de cada operación agrego el objeto a la SESSION:
EJ:
Código PHP:
Código PHP:
$cart->add_cart($quickievalues[0]['products_id'], 4, '');
$_SESSION["cart"] = serialize($cart);