Outils pour utilisateurs

Outils du site


debutsymfony

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
debutsymfony [2023/11/06 11:00] admindebutsymfony [2024/10/14 14:21] (Version actuelle) admwiki
Ligne 15: Ligne 15:
 </code> </code>
  
-===== Initialisation du projet : =====+===== Création et configuration de la base de données : =====
  
 1) Sous mariadb, créer la base de données nommée webstudent 1) Sous mariadb, créer la base de données nommée webstudent
Ligne 22: Ligne 22:
 <code>DATABASE_URL="mysql://root:@127.0.0.1:3307/webstudent?serverVersion=mariadb-10.6.5"</code> <code>DATABASE_URL="mysql://root:@127.0.0.1:3307/webstudent?serverVersion=mariadb-10.6.5"</code>
    
-3) Créer le controlleur EtudiantController  (ATTENTION DE BIEN SAISIR LE NOM : EtudiantController+===== Création d'un contrôleur : ===== 
- <code>>php bin/console make:controller</code>+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''
 + 
 +Créer le controlleur EtudiantController avec la commande ci-dessous dans la console (à la racine du projet
 +<code> 
 +>php bin/console make:controller 
 +</code> 
 +Donner le nom ''EtudiantController''
 +Vérifier la présence du nouveau fichier dans src/Controller. Symfony créé une vue par défaut en même temps dans le dossier templates/etudiant, vue nommée index.html.twig.
  
 → Fichiers créés : src/controller/EtudiantController.php + templates/etudiant/index.html.twig → Fichiers créés : src/controller/EtudiantController.php + templates/etudiant/index.html.twig
  
-4) Tester dans le navigateur+===== Tests : ===== 
 +Tester dans le navigateur
 http://localhost/webstudent23/public/etudiant http://localhost/webstudent23/public/etudiant
  
-Note : Si erreur page non trouvée +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+Vérifier la présence du fichier .htaccess dans le dossier public. Si inexistant, copier ce fichier depuis le nas
  
-5) Analyser le fichier EtudiantController+===== Analyse : ===== 
 +1) Analyser le fichier EtudiantController 
 +{{:etudiantcontroller.png?400|}} 
 + 
 +2) Analyser la vue templates/etudiant/index.html.twig 
 +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.  
 +===== Fichier de routes: ===== 
 +Il est possible  de configurer les routes dans le fichier config/routes.yaml. Cela permet de centraliser toutes les routes dans un seul fichier plutôt que via les annotations au dessus de chaque méthode dans chaque contrôleur. 
 +Le fichier .../config/routes.yaml permet donc de définir un nom de route et de l'associer à une url et à un contrôleur et sa méthode. 
 +Précédemment l'url saisie était: http://localhost/webstudent/public/etudiant. 
 + 
 +Dans le fichier de routes config/routes.yaml, chaque route est définie par un ensemble de 3 lignes : 
 +  * le nom de la route (ici ''app_etudiant''). 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 ''/etudiant''
 +  * le contrôleur et la méthode associée à la route (ici EtudiantController, méthode index).
  
-6) Analyser la vue templates/etudiant/index.html.twig 
  
-7) Possibilité de configurer les routes dans le fichier config/routes.yaml 
  a)mettre en commentaires la ligne 11  (//#[Route...)  a)mettre en commentaires la ligne 11  (//#[Route...)
  b)configurer la route dans le fichier config/routes.yaml  b)configurer la route dans le fichier config/routes.yaml
 +
 <code>controllers: <code>controllers:
     resource:     resource:
Ligne 46: Ligne 68:
     type: attribute     type: attribute
  
-index:+app_etudiant:
     path: /etudiant     path: /etudiant
     controller: App\Controller\EtudiantController::index</code>     controller: App\Controller\EtudiantController::index</code>
Ligne 55: Ligne 77:
  
  
-===== Le fichier des routes : =====+===== Activité ===== 
 +Le but de cette première activité est de créer une page d’accueil affichant « Bonjour les SIO – 
 +Quelles notes obtiendrez vous au BTS en 2024 ?» 
 +L’année sera un paramètre nommé pAnnee qui sera passé à la vue.
  
-Le fichier .../config/routes.yaml permet d'associer une url à un contrôleur et sa méthode. +1) Dans le fichier de routes, créer une route dont l’url à saisir dans le navigateur sera 
-Ici l'url saisie sera : http://localhost/webstudent/public/accueil.+http://localhost/webstudent23/public/etudiant/accueil. 
 +Cette route redirigera vers la méthode nommée accueil de EtudiantController
  
-Chaque route est définie par un ensemble de 3 lignes : +2modifier le contrôleur EtudiantController pour ajouter la nouvelle méthode accueil.=====
-  * 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> <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; namespace App\Controller;
  
Ligne 98: Ligne 97:
 class EtudiantController extends AbstractController class EtudiantController extends AbstractController
 { {
-    /* +   
-     * @Route("/etudiant", name="etudiant") +      
-     */ +    //#[Route('/etudiant', name: 'app_etudiant')] 
-    public function index()+    public function index(): Response
     {     {
-      /* Cette simple instruction permet d'envoyer des informations au navigateur sans passer par une vue. +        return $this->render('etudiant/index.html.twig', [ 
-        return new Response('<html><body>Salut Les SIO</body></html>'); +            'controller_name' => 'EtudiantController'
-        */ +        ]);
- +
-         // initialise une variable qui sera exploitée dans la vue +
-         $annee = '2023'; +
-         return $this->render('etudiant/accueil.html.twig', ['pAnnee' => $annee+
-        ]);          +
     }     }
 +
 +  
 +    public function accueil(): Response
 +    {
 +        $annee = '2024';
 +        return $this->render('etudiant/accueil.html.twig', ['pAnnee' => $annee,
 +       ]);
 +    }          
 +    
 } }
 </code> </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.+La méthode accueil 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 $pAnnee.
  
 ===== Création de la vue ===== ===== 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. 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. Ce fichier nommé accueil.html.twig est créé dans le dossier ../templates/etudiant.
Ligne 147: Ligne 147:
  
 ===== Tests ===== ===== Tests =====
-  * Saisir dans le navigateur l'url : http://localhost/webstudent/public/accueil.+  * Saisir dans le navigateur l'url : http://localhost/webstudent/public/etudiant/accueil.
   * La réponse attendue est :   * La réponse attendue est :
  
 {{:symfoaccueil.png?400|}} {{:symfoaccueil.png?400|}}
  
debutsymfony.1699268415.txt.gz · Dernière modification : 2023/11/06 11:00 de admin