<!DOCTYPE html>
<meta charset="utf-8">
<?php
require_once 'Cart.php';
require_once 
'PresentListener.php';
require_once 
'LoggingListener.php';

session_start();

$cart = isset($_SESSION['cart']) ? $_SESSION['cart'] : null;
if (
is_null($cart)) {
    
$cart = new Cart();

    
//観察者である各Listenerクラスを追加する
    
$cart->addListener(new PresentListener());
    
$cart->addListener(new LoggingListener());
}

$item = isset($_POST['item']) ? $_POST['item'] : '';
$mode = isset($_POST['mode']) ? $_POST['mode'] : '';

switch (
$mode) {
    case 
'add':
        echo 
'追加しました。';
        
$cart->addItem($item);
        break;
    case 
'remove':
        echo 
'削除しました。';
        
$cart->removeItem($item);
        break;
    case 
'clear':
        echo 
'クリアしました。';
        
$cart->removeItems();
        break;
    default:
        break;
}

$_SESSION['cart'] = $cart;

echo 
'<p>商品は以下のとおりです。</p>';
echo 
'<ul>';
foreach (
$cart->getitems() as $id => $quantity) {
    echo 
'<li>' $id ' : ' $quantity '</li>';
}
echo 
'</ul>';

?>
<form action="index.php" method="post">
    <select name="item">
        <option value="10:Tシャツ">Tシャツ</option>
        <option value="20:ぬいぐるみ">ぬいぐるみ</option>
        <option value="30:クッキーセット">クッキーセット</option>
    </select>
    <input type="submit" name="mode" value="add" />
    <input type="submit" name="mode" value="remove" />
    <input type="submit" name="mode" value="clear" />
</form>