Avez-vous une question? (216) 97 656 803 hajjriadh@gmail.com
Symfony

Créer une page dans Symfony

Un cours complet pour maîtriser Créer une page dans Symfony.

0 chapitres 0 QCM Accès gratuit
  1. Objectifs

    • Identifier et comprendre les rôles de chaque composant du modèle MVC dans Symfony : Modèle, Vue et Contrôleur.
  2. 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
  3. 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.
  4. Exemple:

    1. 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".
    2. 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
    3. 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.
    4. 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 :
      • 
        <?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',
                ]);
            }
        }
      • Dans cet exemple, la méthode index() renvoie la réponse pour la page d'accueil. Elle utilise la méthode render() pour rendre un template Twig index.html.twig.
    5. 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.