Application Symfony pour la gestion des records de jeux vidéo. Elle expose une API REST consommée par des clients front-end et propose une interface d'administration complète.
- PHP 8.5+
- Composer 2
- Node.js LTS + npm
- MySQL 8.0+
| Couche | Technologie |
|---|---|
| Framework | Symfony 8.0 |
| API | API Platform 4 |
| ORM | Doctrine ORM 3 |
| Administration | Sonata Admin 4 |
| Authentification | JWT (LexikJWT + Gesdinet Refresh Token) |
| Messagerie asynchrone | Symfony Messenger |
| Scheduler | Symfony Scheduler |
| Stockage fichiers | Flysystem + AWS S3 |
| Intégration IGDB | kris-kuiper/igdbv4 |
| Audit | DamienHarper Auditor |
| Front-end | Bootstrap 5 + Webpack Encore |
| Tests | PHPUnit 12 + Zenstruck Foundry |
# Dépendances PHP
composer install
# Dépendances JS et build des assets
npm install && npm run build
# Variables d'environnement
cp .env .env.local
# Éditer .env.local avec les paramètres locaux
# Base de données
php bin/console doctrine:database:create
php bin/console doctrine:migrations:migrate
# Clés JWT
php bin/console lexik:jwt:generate-keypairLe projet suit une architecture Domain-Driven Design (DDD) organisée en Bounded Contexts :
src/
├── SharedKernel/ # Code transversal partagé
└── BoundedContext/
├── User/ # Gestion des utilisateurs, groupes, sécurité
├── VideoGamesRecords/
│ ├── Core/ # Domaine métier principal (records, jeux, joueurs)
│ ├── Badge/ # Gestion des badges (Master, Serie, Platform, Country)
│ └── Igdb/ # Intégration API IGDB
└── ...
Chaque contexte est découpé en 4 couches : Domain → Application → Infrastructure → Presentation.
make help # Liste toutes les commandes disponiblesmake phpcs # Vérifie le style (PHPCS)
make phpcs-fix # Corrige automatiquement le style (PHPCBF)
make phpstan # Analyse statique (PHPStan)
make qa # Lance phpcs + phpstanmake test # Lance tous les tests
make test-coverage # Tests avec couverture HTML (var/coverage/)
make test-vgr-core-api # Tests API du contexte Core uniquementmake db-create # Crée la base de données
make db-migrate # Exécute les migrations
make db-rollback # Annule la dernière migration
make db-fixtures # Charge les fixtures
make db-reset # Réinitialise complètement (drop + create + migrate + fixtures)
make db-local # Base locale complète (schema:update + fixtures)
make db-test # Base de test complète (schema:update + fixtures)make install # Installe les dépendances Composer
make cache-clear # Vide le cache
make cache-warmup # Préchauffe le cachemake assets-install # Installe les assets dans public/
make assets-compile # Compile les assets (asset-map)make serve # Démarre le serveur Symfony + npm watch
make serve-stop # Arrête le serveur
make serve-log # Affiche les logs du serveurmake messenger-consume # Consomme la queue asyncLe pipeline CI vérifie automatiquement PHPCS, PHPStan et les tests sur chaque push/PR vers dev.
Le déploiement est géré via GitHub Actions (deploy.yml) :
- Staging : automatique à chaque push sur
dev - Production : déclenchement manuel (
workflow_dispatch)
Le déploiement utilise rsync via SSH suivi d'un cache:clear et, en production, d'un asset-map:compile.