1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php

$products = array(
  new Product(1, 'Reddit Gold', 10),
  new Product(2, 'Lifetime supply of bacon', 50),
  new Product(3, 'Reddit Gold and a lifetime supply of bacon', 50),
  new Product(4, 'A panda on a trycicle', PRICELESS)
);

$cart = new ShoppingCart(new DataSessionStorage('shopping_cart'));
$cart->setNumberOfSlots(3);

while($product = array_shift($products)) {
  if($cart->hasRemainingSlots()) {
    $cart->add($product);
  }
  else {
    break;
  }
}


// in another page because the cart was serialized in datastorage
$cart = new ShoppingCart(new DataSessionStorage('shopping_cart'));

$cart->remove(new Product(2, 'Lifetime supply of bacon', 50));
$cart->remove(new Product(3, 'Reddit Gold and a lifetime supply of bacon', 50);

$cart->add(new Product(1, 'Reddit Gold', 10), 5); // 6 months of reddit gold


// and in the last step
$cart = new ShoppingCart(new DataSessionStorage('shopping_cart'));

$total = $cart->getTotal();
$products_and_quantities = $cart->getProductsAndQuantitites();