Une application fullstack utilisant Symfony 7.2 pour le backend, React pour le frontend, et une infrastructure Docker complète.
- Docker et Docker Compose installés sur votre machine
- Git
- Un terminal
- Minimum 4GB de RAM disponible
symfony-react-app/
├── back/ # Backend Symfony
├── front/ # Frontend React
└── docker/ # Configuration Docker
├── nginx/ # Configuration Nginx
├── php/ # Configuration PHP-FPM
└── ...
-
Cloner le projet
git clone [URL_DU_REPO] cd symfony-react-app
-
Configuration des variables d'environnement
Créez un fichier
.env
à la racine du projet backend :cd back cp .env.example .env
Ajustez les variables suivantes dans le fichier
.env
:DATABASE_URL="mysql://user:password@mysql:3306/app_db?serverVersion=8.0"
-
Démarrage des conteneurs Docker
docker-compose up -d
-
Installation des dépendances Backend
docker exec -it php composer install
-
Création et migration de la base de données
docker exec -it php php bin/console doctrine:database:create docker exec -it php php bin/console doctrine:migrations:migrate
Une fois l'installation terminée, vous pouvez accéder aux différents services :
- Frontend (React) : http://localhost:3000
- Backend (Symfony) : http://localhost:80
- PHPMyAdmin : http://localhost:8080
- Utilisateur : user (selon votre configuration)
- Mot de passe : password (selon votre configuration)
# Démarrer les conteneurs
docker-compose up -d
# Arrêter les conteneurs
docker-compose down
# Voir les logs
docker-compose logs -f
# Reconstruire les images
docker-compose build
# Accéder au conteneur PHP
docker exec -it php bash
# Créer une migration
docker exec -it php php bin/console make:migration
# Exécuter les migrations
docker exec -it php php bin/console doctrine:migrations:migrate
# Vider le cache
docker exec -it php php bin/console cache:clear
- Framework : Symfony 7.2
- PHP : 8.3
- Base de données : MySQL 8.0
- Bundles principaux :
- doctrine/doctrine-bundle
- symfony/security-bundle
- nelmio/cors-bundle
- Framework : React
- Port : 3000
- Nginx (serveur web)
- PHP-FPM 8.3
- MySQL 8.0
- PHPMyAdmin
- Conteneur Frontend React
Si vous rencontrez des problèmes de permissions avec les fichiers générés par Symfony :
docker exec -it php chown -R www-data:www-data var/
Vérifiez que :
- Le service MySQL est bien démarré
- Les informations de connexion dans le
.env
sont correctes - La base de données existe
Pour travailler efficacement sur le projet :
- Le hot-reload est activé sur le frontend (http://localhost:3000)
- Les modifications du backend sont immédiatement prises en compte
- XDebug est configuré pour le débogage (configuration IDE nécessaire)
Pour toute question ou problème :