airbnb est une plateforme web de location de logements entre particuliers, développée avec Symfony pour servir de support pédagogique à l'apprentissage du framework.
- PHP 8.2+ avec extensions (pdo_pgsql, mbstring, zip, gd, intl)
- Composer
- Symfony CLI
- PostgreSQL 15+
- Git
Pour suivre le cours, nous recommandons de :
- Fork ce repository pour garder une trace de votre progression
- Ou créer un nouveau repository vide pour partir de zéro
(https://symfony.com/download)[https://symfony.com/download]
# Créer un nouveau projet Symfony
symfony new airbnb --version="7.1.*"
cd airbnb# Installer les dépendances de base
composer require orm
composer require debug
composer require alice
# ...
composer require symfony/maker-bundle --dev
composer require symfony/security-bundle
composer require symfony/form
composer require symfony/validator
composer require symfony/twig-bundle
composer require symfony/asset
composer require symfony/mailer
composer require symfony/http-client
composer require symfony/doctrine-fixtures-bundle --dev
composer require symfony/test-pack --dev# Démarrer PostgreSQL et MailHog avec Docker Compose
docker compose up -d postgres mailhog
# Vérifier que les services sont démarrés
docker compose ps# Configurer la base de données dans .env.local
DATABASE_URL="postgresql://airbnb:airbnb@localhost:5432/airbnb?serverVersion=15&charset=utf8"
MAILER_DSN=smtp://localhost:1025# Créer la base de données
symfony console doctrine:database:create
# Vérifier la connexion
symfony console doctrine:database:create --if-not-exists# Démarrer le serveur Symfony
symfony serve -d
# Ou avec le serveur PHP intégré
symfony server:start- Application Symfony : https://127.0.0.1:8000
- Interface MailHog : http://localhost:8025
- Base de données PostgreSQL : localhost:5432
- PostgreSQL - Base de données principale
- MailHog - Serveur SMTP de test pour les emails
5432- PostgreSQL8025- Interface MailHog (web)1025- SMTP MailHog
# Démarrer les services
docker compose up -d
# Arrêter les services
docker compose down
# Voir les logs
docker compose logs -f
# Redémarrer un service
docker compose restart postgres# Créer une entité
php bin/console make:entity
# Créer un contrôleur
php bin/console make:controller
# Créer un formulaire
php bin/console make:form
# Créer une migration
php bin/console make:migration
# Exécuter les migrations
php bin/console doctrine:migrations:migrate
# Vider le cache
php bin/console cache:clear
# Voir les routes
php bin/console debug:router