MenuCraft est une application web pédagogique développée avec Symfony 7 et PHP 8.3, utilisant Docker pour l'environnement de développement. Ce projet a pour objectif d'apprendre les bases de Symfony tout en construisant une application de gestion de menus pour restaurants.
Assurez-vous d'avoir les outils suivants installés sur votre machine :
- Docker
- Docker Compose
- Make (optionnel, pour utiliser les commandes facilitées)
-
Cloner le dépôt
git clone https://github.com/yhammououali/menucraft.git cd menucraft -
Configurer l'environnement Docker
Assurez-vous que Docker est en cours d'exécution et lancez :
make up
Cela démarrera les conteneurs Docker requis en arrière-plan.
-
Installer les dépendances PHP
Pour installer les dépendances PHP avec Composer, exécutez :
make composer-install
-
Configurer la base de données
Pour créer la base de données et appliquer les migrations, exécutez :
make db-setup
Cela configurera la base de données
menucraftet chargera les fixtures initiales. -
Configurer le fichier .env
Assurez-vous que le fichier
.envcontient les bonnes configurations, comme l'adresse Mailhog pour la capture des emails :MAILER_DSN=smtp://menucraft_mailhog:1025
Une fois l'installation terminée, accédez à l'application via http://menucraft.local.
Pour arrêter l'application et les conteneurs Docker, exécutez :
make downAfficher les logs des conteneurs :
make logsAfficher le statut des conteneurs :
make statusRebuild des conteneurs (après des modifications dans le Dockerfile) :
make buildSe connecter au conteneur PHP :
make startVider le cache Symfony en mode développement :
make cache-clearExécuter les tests PHPUnit :
make test-phpLe projet utilise plusieurs services Docker pour ses différentes fonctionnalités :
- Base de données MySQL : Accessible sur le port
3306. - Adminer : Interface web pour MySQL, accessible sur http://localhost:8081.
- PHP : Conteneur pour exécuter l'application Symfony.
- Nginx : Serveur web pour servir l'application Symfony, accessible sur http://menucraft.local.
- Mailhog : Service de capture d'emails pour le développement, accessible sur http://localhost:8090.