Brève description
- Petite application PHP pour gérer des cartes cadeaux en session. Interface HTML minimale pour créer, créditer, débiter, bloquer et débloquer des cartes.
Fichiers principaux
-
carte-cadeau.php— classeGiftCard- Implémente les propriétés et méthodes pour manipuler une carte (
CreateCard,BlockCard,UnblockCard,CreditCard,DebitCard,getCode,getMontant,isActive). - Utilise
montanten centimes etstatuscomme'1'/'0'. - Les méthodes retournent des chaînes et effectuent des vérifications de base (ex. : impossible d'opérer sur une carte bloquée ; contrôle du solde pour les débits).
- Implémente les propriétés et méthodes pour manipuler une carte (
-
script.php— contrôleur/processor- Reçoit les POST depuis
index.php, valide les entrées (format des montants, code unique, solde initial non-négatif), met à jour$_SESSION['cards']et place un message flash. - Redirige ensuite vers l'interface (
index.php).
- Reçoit les POST depuis
-
index.php— interface / vue- Formulaire pour créer une carte et tableau listant les cartes stockées en session.
- Chaque action du tableau (bloquer/débloquer/recharger/débiter) envoie un POST vers
script.php. - La fonction utilitaire
fmt_euro()convertit les centimes en chaîne euros pour l'affichage.
Comment les fichiers sont connectés (flux)
- L'utilisateur interagit avec
index.php(formulaire / boutons). - Le formulaire envoie un POST à
script.php. script.phpvalide les données, appelle les méthodes deGiftCard(viacarte-cadeau.php) et met à jour$_SESSION['cards'].script.phpredirige versindex.php, qui affiche l'état courant et les messages flash.
Exécution locale 🛠️
- Ouvrir un terminal dans le dossier du projet (
POO). - Lancer le serveur PHP intégré :
php -S localhost:8000- Ouvrir dans le navigateur :
http://localhost:8000/index.php.
Utilisation de l'interface (pas à pas) ✨
- Créer une carte : saisir un
Codeet unSolde initial (€)(ex.10.00ou10,00) → Cliquer sur Créer. (La valeur est convertie en centimes.) - Créditer/Débiter : utiliser les champs à côté de l'action ; les montants acceptent
,ou.comme séparateur décimal. - Bloquer/Débloquer : cliquer sur les boutons correspondants.
- Les messages de succès/erreur s'affichent en haut (flash).
Règles métier implémentées ✅
- Une carte ne peut pas avoir de solde négatif (vérification à la création / lors du débit).
- Impossible de débiter une carte bloquée.
- Impossible de recharger une carte bloquée.
- Impossible de débiter plus que le solde disponible.
- Les montants sont manipulés en centimes pour éviter les problèmes de virgule flottante.
Souhaitez-vous que j'applique l'une de ces améliorations maintenant (p. ex. refactorer la classe pour lancer des exceptions) ?