🏗️ Mini-projet — Catalogue Produits OOP

Appliquer la POO PHP 8, Composer et la structure Symfony à un catalogue produits.

📋 Objectif

Créer un petit catalogue produits en PHP 8 pur (sans framework), avec POO, interfaces, traits et Composer. Ce projet servira de base pour les modules suivants où on le migrera vers Symfony.

🎯 Fonctionnalités à implémenter

1. Interface ProductInterface avec getPrice(), getName(), getSku()
2. Trait TimestampableTrait (createdAt, updatedAt)
3. Classe Product avec constructor promotion + enum CategoryEnum
4. Classe ProductCatalog — ajouter, filtrer, trier les produits
5. Autoloading PSR-4 via Composer + script de démo CLI

📁 Structure attendue

mini-projet-sf01/
├── src/
│   ├── Contract/
│   │   └── ProductInterface.php
│   ├── Enum/
│   │   └── CategoryEnum.php
│   ├── Trait/
│   │   └── TimestampableTrait.php
│   ├── Entity/
│   │   └── Product.php
│   └── Service/
│       └── ProductCatalog.php
├── public/
│   └── index.php          (démo HTML)
├── bin/
│   └── catalog.php        (CLI)
└── composer.json

✅ Critères de réussite

← Retour au cours 🧠 QCM SF01