Outils pour utilisateurs

Outils du site


debutsymfony

Ceci est une ancienne révision du document !


Premiers pas avec Symfony 6

Le but de ce chapitre est de créer une nouvelle page affichant juste un message de bienvenue. Il faut donc :

  • prévoir l'url qui permettra d'afficher cette page
  • associer cette url à un contrôleur et une méthode de ce contrôleur
  • implémenter le contrôleur et sa méthode
  • créer la vue contenant les informations à afficher.

Il est nécessaire d'installer un composant supplémentaire avant de commencer :

composer require symfony/apache-pack

Initialisation du projet :

  1. Sous mariadb, créer la base de données nommée webstudent
  1. Configurer la connexion à la bdd dans le fichier .env

DATABASE_URL=“mysql:root:@127.0.0.1:3307/webstudent?serverVersion=mariadb-10.6.5” - Créer le controlleur EtudiantController (ATTENTION DE BIEN SAISIR LE NOM : EtudiantController) >php bin/console make:controller → Fichiers créés : src/controller/EtudiantController.php + templates/etudiant/index.html.twig - Tester dans le navigateur http://localhost/webstudent23/public/etudiant Note : Si erreur page non trouvée Vérifier la présence du fichier .htaccess dans le dossier public. Si inexistant, le copier depuis le nas - Analyser le fichier EtudiantController - Analyser la vue templates/etudiant/index.html.twig - Possibilité de configurer les routes dans le fichier config/routes.yaml a) mettre en commentaires la ligne 11 (#[Route…) b) configurer la route dans le fichier config/routes.yaml controllers: resource: path: ../src/Controller/ namespace: App\Controller type: attribute index: path: /etudiant controller: App\Controller\EtudiantController::index c) Tester dans le navigateur http://localhost/webstudent23/public/etudiant ===== Le fichier des routes : ===== Le fichier …/config/routes.yaml permet d'associer une url à un contrôleur et sa méthode. Ici l'url saisie sera : http://localhost/webstudent/public/accueil. Chaque route est définie par un ensemble de 3 lignes : * le nom de la route (ici route_accueil). Vous pouvez mettre ce que vous voulez mais ce nom doit être unique pour tout votre fichier. * le path = la partie de l'url à saisir dans le navigateur derrière http://localhost/webstudent/public (ici /accueil) * le contrôleur et la méthode associée à la route (ici EtudiantController, méthode index). Fichier …/config/routes.yaml <code php> route_accueil: path: /accueil controller: App\Controller\EtudiantController::index </code> ===== Création du contrôleur ===== Le contrôleur contient la logique applicative. Il utilise la couche modèle pour exploiter les données, effectue éventuellement des traitements et redirige vers une vue. Les contrôleurs sont situés dans le dossier …\src\Controller et ont pour nom xxxController. <code> >php bin/console make:controller </code> Donner le nom EtudiantController. Vérifier la présence du nouveau fichier dans src/Controller, l'éditer et le modifier comme ci-dessous. Fichier …/src/Controller/EtudiantController.php <code php> <?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\HttpFoundation\Response; class EtudiantController extends AbstractController { /* * @Route(“/etudiant”, name=“etudiant”) */ public function index() { /* Cette simple instruction permet d'envoyer des informations au navigateur sans passer par une vue. return new Response('<html><body>Salut Les SIO</body></html>'); */ initialise une variable qui sera exploitée dans la vue $annee = '2023'; return $this→render('etudiant/accueil.html.twig', ['pAnnee' ⇒ $annee, ]); } } </code> La méthode index de ce contrôleur appelée par la route précédente, initialise une variable $annee et renvoie vers une vue nommée accueil.html.twig en passant en paramètre la variable $annee. ===== Création de la vue ===== Les vues avec symfony sont générées avec le moteur de templates Twig. Il s'agit de simples pages contenant essentiellement du Html et dans lesquelles des morceaux de code php peuvent être exécutés. Les vues doivent avoir l'extension .html.twig et se situer dans le dossier ../templates.'' du projet. Voici la vue renvoyée par le contrôleur ci-dessus et permettant d'afficher un simple message. Ce fichier nommé accueil.html.twig est créé dans le dossier ../templates/etudiant. Fichier templates/etudiant/accueil.html.twig <code html> {% extends 'base.html.twig' %} {% block title %}Hello EtudiantController!{% endblock %} {% block body %} <style> .example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; } .example-wrapper code { background: #F5F5F5; padding: 2px 6px; } </style>

Hello les SIO</br>

	Quelles notes obtiendrez vous au BTS en {{pAnnee}} ?

{% endblock %} </code> ===== Tests ===== * Saisir dans le navigateur l'url : http://localhost/webstudent/public/accueil. * La réponse attendue est :

debutsymfony.1699268087.txt.gz · Dernière modification : 2023/11/06 10:54 de admin