, (*1)
The simplest shopping cart class ever to exist. For a full stack shopping cart system, check out metator/application., (*2)
The cart class class is hopefully very intuitive. It depends on nothing, and assumes nothing except that your items have a unique identifier., (*3)
use Metator\Cart\Cart;
$cart = new Cart;
$cart->add(5);
$cart->add(5);
$cart->add(5);
echo $cart->quantity(5); // 3
print_r($cart->items()); // array(5)
$cart->remove(5);
echo $cart->quantity(5); // 0
print_r($cart->items()); // array()
$cart->add(5);
$cart->setQuantity(5,500);
echo $cart->quantity(5); // 500
$cart->setQuantity(5,0);
print_r($cart->items()); // array()
Understanding Identifiers
The value for the ID could be the auto_increment from your database, a product SKU, or any kind of unique identifier like a hash. For example if a T-Shirt comes in multiple colors but always has the same SKU & ID regardless of color, you could use a hash representing the configured state of that product for the id here., (*4)