Skip to content

Latest commit

 

History

History
55 lines (35 loc) · 2.52 KB

TP6.md

File metadata and controls

55 lines (35 loc) · 2.52 KB

TP6 - Blade, le moteur de vues

Objectif

Dans le TP précédent, nous avons migrer notre application dans le framework Laravel pour obtenir une version fonctionnelle mais qui ne respecte pas les principes MVC.

Dans ce TP6, l'objectif est de mettre en place la partie Vues grâce à Blade.

Toute la documentation officielle se trouve ici

Exercice 1 : Le layout principal

  1. Dans resources/views, créer un répertoire shared avec un fichier message.blade.php qui :

    • vérifie que la variable $message existe et n'est pas nulle
    • si c'est le cas, l'affiche
  2. Dans resources/views, créer un répertoire layout avec un fichier app.blade.php contenant la structure HTML de base et les directives blade suivantes :

    • un élément <title> paramétrable avec @yield
    • une @section pour le contenu principal du corps HTML contenant elle-même déjà un élément <h1> identique au <title>
    • un @include du fichier de la question précédente

Exercice 2 : Les héritiers

Appliquer chaque étape aux quatre fichiers suivants :

  • formpassword.php
  • signin.php
  • signup.php
  • welcome.php
  1. Renommer le fichier en .blade.php.

  2. Adapter le fichier en le faisant étendre app.blade.php .

Exercice 3 : Les messages comme paramètres

À ce stade tout devrait fonctionner excepté les messages qui ne s'affichent plus.

Pour remédier à cela, dans routes/web.php, ajouter en paramètre des directives view(...) qui pointent vers l'un des 4 fichier de l'exercice 2 une variable nommée message. Elle a pour valeur le contenu de la variable de session "message" ou null si cette dernière n'existe pas.

Conseil n°1 : Utilisez la directive ->with(...).
Conseil n°2 : Regardez la syntaxe ?? de PHP.

Exercice 4 : Finitions

  1. Afin de rendre les vues totalement indépendantes des sessions, faites-en sorte que la variable de session user affichée dans welcome.blade.php soit transmise à la vue dans une variable $user depuis routes/web.php.

  2. Maintenant que Blade est utilisé, nous pouvons remettre en place la vérification CSRF des formulaires. Ajouter la directive requise aux formulaires Blade (voir CSRF Protection) et dé-commenter la ligne correspondante dans app/Http/Kernel.php.