Salut
<?php require_once 'Panier.class.php'; require_once 'Produit.class.php'; require_once 'ProduitException.php';
$p1 = new Panier();
$prod1 = new Produit(1, 'GuildWars2', 60, 500); echo "Test StockInsuffisant \n"; try { $p1->ajouterProduit($prod1, 600);
} catch (ProduitExceptionStockInsuffisant $e) { echo $e->getMessage() . "\n";
} catch (ProduitExceptionStockAlerte $e) { echo $e->getMessage() . "\n";
}
echo "Test StockAlerte \n"; try { $p1->ajouterProduit($prod1, 495);
} catch (ProduitExceptionStockInsuffisant $e) { echo $e->getMessage() . "\n";
} catch (ProduitExceptionStockAlerte $e) { echo $e->getMessage() . "\n";
}
?>
Classe Panier :
<?php require 'Produit.class.php'; class Panier { private $lesProduits = array(); //dictionnaire referenceProduit => array(quantite,prix) public function ajouterProduit($unProduit, $quantite) { if ($quantite > $unProduit->getStock()) throw new ProduitExceptionStockInsuffisant("Quantité supérieure au stock"); if (($unProduit->getStock() - $quantite) < 10) throw new ProduitExceptionStockAlerte("Stock d'Alerte atteint"); $this->lesProduits[$unProduit->getRef()] = array($quantite, $unProduit->getPrix()); } public function supprimerProduit($uneCle) { unset($this->lesProduits[$uneCle]); } public function nbProduits() { return count($this->lesProduits); } public function total() { $total = 0; foreach ($this->lesProduits as $cle => $valeur) { if ($valeur[0] >= 50) { $cinq = (($valeur[1] / 100) * 5); $valeur[1] = $valeur [1] - $cinq; } else { if ($valeur[0] >= 20) { $deux = (($valeur[1] / 100) * 2); $valeur[1] = $valeur[1]