Vous êtes sur la page 1sur 5

Le moteur de template Blade

Blade est le moteur de template (templating engine) utilisé par Laravel. Il permet de
simplifier la création des vues. En effet, un fichier Blade est composé de code HTML,
de directives et de variables entre accolades. Certaines directives permettent de
contrôler l’affichage (@if ou @foreach). D’autres permettent de composer des vues à
partir de plusieurs fichiers (@extends pour hériter, @include pour faire des
inclusions).
I- Les structures de base
1- Affichage de la valeur d’une variable :
La première fonctionnalité la plus basique de Blade est l’affichage d’une simple
variable.
Exemple : Si je transmets à ma vue la variable $v = ‘cours Blade!’’. Alors, dans ma
vue {{ $maVaribale }} affichera ‘cours Blade!’ .

2- Les structures de contrôle (conditions)

Blade permet de manipuler des données comme le php. Voici une liste non-exhaustive
des structures de contrôle disponible avec Blade :

directives Exemple Résultat


$note = 15.02; <p>Admis</p>
@if, @elseif, @if ( $note >=10)
@else <p>Admis.</p>
@elseif ( $note>=0 )
<p>Redoublant</p>
@else
<p>Erreur de saisie.</p>
@endif
@switch($age)
@switch @case( $age < 18 )
<p>La personne est mineure.</p>
@break
@case( $age > 18 )
<p>La personne est majeure.</p>
@break
@default
<p>valeur par défaut.</p>
@endswitch

$produit = 'montre'; <p>Le produit existe</p>


@isset @isset($produit)
<p>Le produit existe</p>
@endisset

Cours proposé par : ELGARRAI Zineb


$produit = ''; <p>Le produit n'existe pas.</p>
@empty @empty($produit)
<p>Le produit n'existe pas.</p>
@endempty

3- Les structures répétitives (boucles)

Directives Exemple Résultat


<?php $i = 1;?> <p>$i est égal à 1</p>
@while
@while ($i < 3) <p>$i est égal à 2</p>
<p>$i est égal à {{ $i++ }}</p>
@endwhile
$names = ['ahmad', 'khalid', 'omar']; <p>Nom : ahmad</p>
@foreach <p> Nom : khalid</p>
@foreach ( $names as $name ) <p> Nom : omar</p>
<p>Nom : {{ $name }}</p>
@endforeach
$numbers = [101, 102, 103];
@for <p>Nombre : 101</p>
@for ($i = 0; $i < count($numbers); $i++) <p>Nombre : 102</p>
<p>Nombre : {{ $numbers[$i] }}</p> <p>Nombre : 103</p>
@endfor
$notes = [10.05, 15.6, 9.05]; <!-- Résulat : -->
@forelse @forelse ($notes as $note) <li>10.05</li>
le @forelse est un <li>{{ $note }}</li> <li>15.6</li>
@empty <li>9.05</li>
foreach qui vous <p>Aucune note existante.</p>
permet de retourner ce @endforelse <!-- Si $notes est vide -->
$notes = [];
que vous souhaitez si
le tableau est vide. <!-- Résulat : -->
<p>Aucune notes
existante.</p>

Remarque :
Dans nos boucles,on a également accès à une variable $loop qui permet de récupérer
certaines informations concernant l’itération en cours dans la boucle. Par exemple :
$days = ['lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche'];
@foreach ($days as $day)
@if ($loop->first)
<p>C'est le premier jour de la semaine : {{ $day }}</p>
@endif
@if ($loop->last)
<p>C'est le dernier jour de la semaine : {{ $day }}</p>
@endif
@endforeach

Cours proposé par : ELGARRAI Zineb


pour plus de détails, consulter la documentation officielle de laravel :
https://laravel.com/docs/9.x/blade

I- Créer un layout et organiser les vues

@yield est principalement utilisé pour définir une section dans un layout. Lorsque ce
layout est étendu avec @extends, on peut définir ce qui se passe dans cette section
avec la directive @section dans nos vues. Le layout contient généralement les parties
HTML <head>, <body>, <header> et <footer>. On définit une zone (@yield) dans
le layout dans laquelle nos pages qui étendent le modèle placeront leurs contenus.

Exemple:
• Etape 1 : créer le layout nommé ‘page principale’

• Etape 2 : Définir une page spécifique qui va hérité de la page principale toutes
sa structure en personnalisant la section ‘contenu’ :

Cours proposé par : ELGARRAI Zineb


TP2 (Suite) :
1- Avant de commencer la création des views, créer leur structure Views en créant les dossiers et
les fichiers dans l’exemple suivant:

2- Ajouter les routes pour accéder aux pages ‘home’ et ‘contact’


3- Créer les vues tel que :
• ‘footer.blade.php’ : contient la partie html qui concerne le footer à utiliser
dans le site en cours de réalisation
• ‘header.blade.php’ : contient la partie html qui concerne le header à utiliser
dans le site en cours de réalisation
• ‘default.blade.php’ présente le layout général d’une page du site.On inclut le
header et le footer via @include(name). Cette vue contient une partie qui
sera personnalisée par la suite par les pages filles (pensez à utiliser @yield)
• les vues ‘contact.blade.php’ et ‘home.blade.php’ etendent la page
‘default.blade.php’ et définissent une section qui représente le contenu
personnalisé de chacune d’elles : vous pouvez mettre un paragraphe pour le
test.

Cours proposé par : ELGARRAI Zineb


4- Tester le bon fonctionnement : Accéder aux pages contact et home via le
navigateur.
5- Améliorer votre projet en ajoutant deux pages : ‘conditions.blade.php’ et
‘loops.blade.php’. Chacune des pages doit contenir une partie de cours et des
exemples. La page ‘default.blade.php’ doit contenir un menu qui permet de naviguer
vers toutes les pages créées pour des éventuels tests

Cours proposé par : ELGARRAI Zineb

Vous aimerez peut-être aussi