Architecture d'un projet Symfony
- L'architecture d'un projet symfony est variable selon les versions, il convient donc d'être
vigilant sur ce point.
src/ et templates seront nos principales zones d'action
- Architecture d'un projet Symfony (7.x)
bin/ les executables dont bin/console qui permet notamment de générer un environnement d'exécution
complet
config/ pour configurer l'environnement
- packages/ : Configuration des bundles (ex : doctrine.yaml, security.yaml, framework.yaml).
- routes/ : Définition des routes (ex : annotations.yaml, dev/ pour les routes de développement).
- services.yaml : Configuration des services et de l’injection de dépendances.
public/ tout ce qui doit être accessible : css, js, images... et le point d'entrée de l'application index.php
src/ pour le code source de l'application (PHP)
Controller/ : Classes des contrôleurs (logique de routage et de traitement des requêtes).
Entity/ : Classes des entités (modèles de données, souvent utilisées avec Doctrine).
Repository/ : Classes des repositories (logique d’accès aux données).
Kernel.php : Classe principale du noyau Symfony.
templates/ vues produites avec les fichiers twig (pour l'affichage)
var/ pour les fichiers générés automatiquement : logs, sessions, cache
vendor/ bibliothèques tiers : dépendances installées à l'aide de Composer (dossier non versionné)
tests/ pour les tests unitaires
translations/ pour configurer les sites multilingues
migrations/ fichiers de migration de base de données (si Doctrine Migrations est utilisé).
assets/ les assets (CSS, JS, images) qui seront compilés avec Webpack Encore (si utilisé).
.env et .env.local Fichiers de configuration d’environnement (variables d’environnement, ex : accès à la base
de données).
composer.json et composer.lock dépendances PHP du projet et leurs versions exactes.
symfony.lock généré par Symfony CLI pour verrouiller les versions des outils Symfony utilisés.
package.json et webpack.config.js configuration des dépendances JavaScript et de Webpack Encore (si utilisé
pour la gestion des assets).