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
-
Dans
resources/views
, créer un répertoireshared
avec un fichiermessage.blade.php
qui :- vérifie que la variable
$message
existe et n'est pas nulle - si c'est le cas, l'affiche
- vérifie que la variable
-
Dans
resources/views
, créer un répertoirelayout
avec un fichierapp.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
- un élément
Appliquer chaque étape aux quatre fichiers suivants :
formpassword.php
signin.php
signup.php
welcome.php
-
Renommer le fichier en
.blade.php
. -
Adapter le fichier en le faisant étendre
app.blade.php
.
À 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.
-
Afin de rendre les vues totalement indépendantes des sessions, faites-en sorte que la variable de session
user
affichée danswelcome.blade.php
soit transmise à la vue dans une variable$user
depuisroutes/web.php
. -
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
.