2.7 KiB
Coder avec Symfony
La structure du projet
Quand on ouvres ton projet, on fait face à plusieurs dossiers. Voici les plus importants et leur utilité :
-
src/ (Le cœur de la logique) : C'est ici qu'on passera 80% de notre temps. Ce dossier contient tout notre code PHP. On pourra y organiser nos Contrôleurs, Entités (modèles de données), et Services (logique complexe).
-
config/ (Les règles du projet) : Contient des fichiers YAML. C'est là qu'on configures la connexion à la base de données, les règles de sécurité, ou le comportement des bibliothèques que tu ajoutes.
-
templates/ (L'UI) : C'est le dossier dédié à l'affichage. Symfony utilise le moteur Twig pour générer du HTML dynamique. On y placera nos vues.
-
public/ (La partie navigateur) : C'est le seul dossier accessible depuis le navigateur web. Il contient le point d'entrée de notre application (index.php) et tous nos fichiers statiques (images, fichiers CSS, scripts JavaScript).
-
bin/ (La boîte à outils) : Contient le fichier console. C'est un outil en ligne de commande indispensable pour interagir avec notre application (vider le cache, mettre à jour la base de données, générer des squelettes de fichiers).
Le fonctionnement d'une requête
Pour faire une application web avec Symfony, il faut comprendre le parcours d'une requête utilisateur. Symfony utilise le motif d'architecture MVC (Modèle - Vue - Contrôleur).
-
L'Entrée (Route) : L'utilisateur tape une URL ou clique sur un lien. Symfony lit cette URL et cherche dans sa configuration quelle fonction est censée gérer cette adresse précise. C'est le système de "Routing".
-
Le Chef d'Orchestre (Contrôleur) : La route pointe vers un Contrôleur (qui se trouve dans le dossier src/). Le contrôleur est une méthode PHP dont le seul but est de recevoir la requête, de rassembler les informations nécessaires, et de décider de la réponse à renvoyer. Il ne fait pas de calculs complexes lui-même, il délègue.
-
Les Données (Modèle) : Si la page a besoin d'afficher des articles de blog, le contrôleur va interroger la base de données. Dans Symfony, on utilise un outil appelé "Doctrine". Au lieu d'écrire du SQL brut, on crée des Entités (des classes PHP qui représentent nos tables) et des Repositories (des classes qui s'occupent de faire les requêtes de recherche). Le contrôleur récupère ainsi des objets PHP.
-
L'Affichage (Vue) : Une fois que le contrôleur a les données (les objets articles), il les transmet à un fichier Twig (dans le dossier templates/). Twig lit les données, les insère dans le code HTML, et renvoie la page complète au contrôleur.
-
La Sortie : Le contrôleur renvoie cette page HTML finale au navigateur de l'utilisateur.