Objectifs
- Identifier et comprendre les rôles de chaque composant du modèle MVC dans Symfony : Modèle, Vue et Contrôleur.
Présentation
- Pour créer une page dans Symfony, il faut, au minimum :
- Une route: pour faire le lien entre une URL et une méthode d'un contrôleur
- Un contrôleur: qui contient des méthodes, chacune, en générale, associée à une route
- Une méthode: permet l'execution d'une action précise, généralement en lien avec une route
- Pour créer une page dans Symfony, il faut, au minimum :
Création avec la console
- Symfony propose un outil qui se nomme "
maker" qui permet de générer du code pour nous. Le code produit est très générique, ne correspond pas forcément exactement à vos besoin, mais permet d'avoir une première base de travail et une structure pour vos différents fichiers. - Pour installer le maker (si vous n'avez pas installé un projet avec toutes les dépendances --wepabb), en étant dans votre projet : composer require maker --dev ou
symfony composer require maker --dev - Ensuite pour utiliser le maker, dans le projet saisir la commande suivante:
bin/console make:controller NomDuController - Cette commande va générer un controller nommé "NomDuController" (dans src/controller) et la vue associée dans le repertoire templates/NomDuController, avec une méthode index.
- Symfony propose un outil qui se nomme "
Exemple:
Création d'un nouveau projet Symfony :
- Commencez par créer un nouveau projet Symfony en utilisant Symfony CLI. Ouvrez votre terminal et exécutez la commande suivante :
symfony new mon_projet - Cela créera un nouveau projet Symfony nommé "mon_projet".
- Commencez par créer un nouveau projet Symfony en utilisant Symfony CLI. Ouvrez votre terminal et exécutez la commande suivante :
Accéder au répertoire du projet :
- Après avoir créé le projet, accédez au répertoire du projet en utilisant la commande cd :
cd mon_projet
- Après avoir créé le projet, accédez au répertoire du projet en utilisant la commande cd :
Création d'un contrôleur :
- Symfony suit le modèle MVC (Modèle-Vue-Contrôleur). Commencez par créer un contrôleur. Exécutez la commande suivante pour créer un contrôleur appelé AccueilController :
php bin/console make:controller AccueilController - Cette commande générera un nouveau fichier AccueilController.php dans le répertoire src/Controller.
- Symfony suit le modèle MVC (Modèle-Vue-Contrôleur). Commencez par créer un contrôleur. Exécutez la commande suivante pour créer un contrôleur appelé AccueilController :
Définir une action dans le contrôleur :
- Ouvrez le fichier src/Controller/AccueilController.php et définissez une action qui renverra la réponse pour votre page d'accueil. Par exemple :
- Dans cet exemple, la méthode
index()renvoie la réponse pour la page d'accueil. Elle utilise la méthoderender()pour rendre un template Twig index.html.twig.
<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; class AccueilController extends AbstractController { /** * @Route("/", name="accueil") */ public function index(): Response { return $this->render('accueil/index.html.twig', [ 'controller_name' => 'AccueilController', ]); } }Création d'un template Twig :
- Créez un nouveau fichier Twig nommé index.html.twig dans le répertoire templates/accueil/ :
{# templates/accueil/index.html.twig #} <!DOCTYPE html> <html> <head> <title>Page d'accueil</title> </head> <body> <h1>Bienvenue sur la page d'accueil !</h1> </body> </html> Test de la page :
- Maintenant, vous pouvez accéder à votre page d'accueil en ouvrant votre navigateur et en accédant à l'URL http://localhost:8000.
- Ces étapes devraient vous aider à créer votre première page dans Symfony avec un exemple réel. Vous pouvez ensuite continuer à ajouter plus de fonctionnalités à votre application en utilisant Symfony.
- Créez un nouveau fichier Twig nommé index.html.twig dans le répertoire templates/accueil/ :