Med Learning
  • Accueil
  • Cours
  • Formation OFPPT
  • Roadmaps
  • Projets
  • Articles
  • Contact
Med Learning

La plateforme d’apprentissage structurée pour les étudiants OFPPT et les autodidactes.

  • medlearning905@gmail.com
  • 06 87 49 76 05
  • @medle_arning

Navigation

  • Accueil
  • Cours
  • Roadmaps
  • Projets pratiques
  • Classement
  • Articles
  • Contact

Formation OFPPT

  • 1ère année
  • 2ème année
  • Filière Full Stack
  • Filière Mobile
  • Cours, TP, EFM et EFF

Mon compte

  • Connexion
  • Créer un compte
  • Mon espace
  • Mot de passe oublié

Med Learning a été créé par Anas Mounchit à la mémoire de son frère Mohammed Maadallah. Ce site est une sadaqa jariya pour lui : chaque leçon apprise ici, chaque ligne de code écrite, est une bonne action qui continue de l’accompagner.

Si Med Learning t’a aidé, pense à lui dans tes prières.

Qu’Allah lui accorde Sa miséricorde et l’accueille dans Son vaste paradis. رحمه الله

© 2026 Med Learning — Fait au Maroc, pour les étudiants.

ConfidentialitéContact & FAQ
Retour au cours

Développer en back-end avec Laravel

Crée un compte pour sauvegarder ta progression.

  • 2.1 Gestion du routage
  • 2.2 Utilisation des middlewares
  • 2.3 Protection CSRF
  • 2.4 Manipulation des contrôleurs
  • 2.5 Manipulation des requêtes HTTP
  • 2.6 Manipulation des réponses HTTP
  • 2.7 Manipulation des vues
  • 2.8 Examen blanc et fiche mémo
CoursDévelopper en back-end avec LaravelModule 2
09

Module 2Programmer avec Laravel

Chapitre 9 sur 10

Manipulation des vues

Créer des vues, transmettre et partager des données, compositeurs, créateurs, optimisation et bases de Blade.

  • ≈ 120 min
  • 4 leçons
  • 2 vidéos
  • 3 exercices
  • TP

Objectifs

Avec ce chapitre, tu sauras…

  • créer une vue et l'afficher depuis une route ;
  • organiser les vues en sous-dossiers ;
  • transmettre des données à une vue et les partager avec toutes les vues ;
  • utiliser les compositeurs et les créateurs de vues ;
  • optimiser les vues en production ;
  • connaître les bases de Blade utilisées dans les vues.

Au programme

  1. Objectifs
  2. 1.La création des vues
  3. 2.La transmission des données aux vues
  4. 3.Les compositeurs de vues
  5. 4.L'optimisation des vues
  6. TP · Les vues de Kitab
  7. Exercices corrigés
  8. L'essentiel
1

Leçon 1

La création des vues

Écrire tout le HTML dans les routes n'est pas pratique. Les vues mettent le HTML dans des fichiers séparés : elles séparent la logique (contrôleur) de la présentation (affichage). Elles sont rangées dans resources/views.

resources/views/greeting.blade.php
blade
<html>
    <body>
        <h1>Hello, {{ $name }}</h1>
    </body>
</html>
php
Route::get('/', function () {
    return view('greeting', ['name' => 'James']);
});

L'extension .blade.php indique que le fichier utilise le moteur Blade : du HTML avec des directives (@if, @foreach…) et l'affichage de variables avec {{ }}.

  • Le premier argument de view() est le nom du fichier (sans .blade.php).
  • Le deuxième est un tableau de données : la clé name devient la variable $name dans la vue.

On peut aussi utiliser la façade View :

php
use Illuminate\Support\Facades\View;

return View::make('greeting', ['name' => 'James']);

Les sous-dossiers

Les vues peuvent être dans des sous-dossiers ; on utilise alors la notation point :

php
return view('admin.profile', $data);   // resources/views/admin/profile.blade.php

Un nom de dossier de vues ne doit pas contenir de point.

La première vue disponible et l'existence d'une vue

php
use Illuminate\Support\Facades\View;

return View::first(['custom.admin', 'admin'], $data);   // la première vue qui existe

if (View::exists('emails.customer')) {
    // la vue existe
}

Vidéo · À regarder

FR

Découverte de Laravel 10 : Moteur de template Blade

Grafikart · YouTube

Regarde de 0:00 à 18:1018 min 10 s
Ouvrir sur YouTube à 0:00

Le moteur de template Blade : créer une vue, afficher des variables avec {{ }} (protégées contre le XSS), conditions et boucles avec @if et @foreach, layouts. Regarde-la en entier (18 minutes) : c'est la base de toutes tes pages.

Tableau: Les bases de Blade à connaître

Écriture BladeRôle
{{ $nom }}afficher une variable en la protégeant (le HTML est échappé, contre le XSS)
{!! $html !!}afficher sans protection (jamais avec une saisie d'utilisateur)
@if (...) … @elseif (...) … @else … @endifcondition
@foreach ($livres as $livre) … @endforeachboucle
@forelse ($livres as $livre) … @empty … @endforelseboucle + message si la liste est vide
@csrf, @method('PUT')formulaires (chapitres 3 et 5)
@extends('layout'), @section('contenu') … @endsection, @yield('contenu')mise en page commune (layout)
@include('partials.menu')insérer une autre vue
{{-- commentaire --}}commentaire invisible dans la page
2

Leçon 2

La transmission des données aux vues

On passe un tableau de paires clé/valeur ; dans la vue, chaque clé est une variable, par exemple <?php echo $name; ?> ou {{ $name }} :

php
return view('greetings', ['name' => 'Victoria']);

Ou bien, élément par élément, avec la méthode with (on peut l'enchaîner) :

php
return view('greeting')
    ->with('name', 'Victoria')
    ->with('occupation', 'Astronaut');

Partager des données avec toutes les vues

Pour une donnée utile dans toutes les vues (nom du site, téléphone…), on utilise View::share dans la méthode boot d'un fournisseur de services, par exemple AppServiceProvider :

app/Providers/AppServiceProvider.php
php
<?php

namespace App\Providers;

use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    public function register()
    {
        //
    }

    public function boot()
    {
        View::share('key', 'value');
    }
}
3

Leçon 3

Les compositeurs de vues

Définition

Compositeur de vue

Un compositeur de vue (view composer) est une fonction (ou une méthode de classe) appelée à chaque fois qu'une vue est affichée. Il ajoute des données à cette vue. C'est utile quand la même vue est affichée par plusieurs routes et a toujours besoin des mêmes données (par exemple le menu des catégories).

On les enregistre dans un fournisseur de services, par exemple un nouveau App\Providers\ViewServiceProvider, avec la méthode composer de la façade View. On peut ranger les classes de compositeurs dans un dossier app/View/Composers :

app/Providers/ViewServiceProvider.php
php
<?php

namespace App\Providers;

use App\View\Composers\ProfileComposer;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;

class ViewServiceProvider extends ServiceProvider
{
    public function register()
    {
        //
    }

    public function boot()
    {
        // compositeur sous forme de classe
        View::composer('profile', ProfileComposer::class);

        // compositeur sous forme de fonction
        View::composer('dashboard', function ($view) {
            //
        });
    }
}

À chaque affichage de la vue profile, Laravel exécute la méthode compose de ProfileComposer :

app/View/Composers/ProfileComposer.php
php
<?php

namespace App\View\Composers;

use App\Repositories\UserRepository;
use Illuminate\View\View;

class ProfileComposer
{
    protected $users;

    public function __construct(UserRepository $users)
    {
        $this->users = $users;          // fourni automatiquement par Laravel
    }

    public function compose(View $view)
    {
        $view->with('count', $this->users->count());   // la vue reçoit $count
    }
}

Plusieurs vues à la fois, ou toutes les vues avec * :

php
use App\Views\Composers\MultiComposer;

View::composer(['profile', 'dashboard'], MultiComposer::class);

View::composer('*', function ($view) {
    //
});

Les créateurs de vues

Un créateur de vue ressemble à un compositeur, mais il s'exécute tout de suite quand la vue est créée, au lieu d'attendre qu'elle soit affichée :

php
use App\View\Creators\ProfileCreator;
use Illuminate\Support\Facades\View;

View::creator('profile', ProfileCreator::class);

À savoir

En Laravel 13

Un nouveau fournisseur de services créé avec php artisan make:provider ViewServiceProvider est ajouté automatiquement au fichier bootstrap/providers.php (avant Laravel 11, il fallait l'ajouter à la main dans config/app.php). Pour quelques compositeurs, AppServiceProvider suffit.

Vidéo · À regarder

FR

Découverte de Laravel 10 : Les composants blade

Grafikart · YouTube

Regarde de 0:00 à la fin
Ouvrir sur YouTube à 0:00

Les composants Blade : créer des morceaux de vue réutilisables (une alerte, une carte) et un layout commun (9 minutes). C'est la façon moderne d'organiser les vues.

4

Leçon 4

L'optimisation des vues

Par défaut, les vues Blade sont compilées (transformées en PHP) à la demande. À chaque requête, Laravel vérifie si la version compilée existe et si la vue a été modifiée depuis ; si oui, il la recompile. Cette vérification prend un peu de temps. En production, on précompile toutes les vues :

bash
php artisan view:cache    # précompiler toutes les vues
php artisan view:clear    # vider le cache des vues
Travaux pratiques

TP · Les vues de Kitab

(1) Crée un layout layouts/app.blade.php (titre, menu, @yield('contenu'), pied de page). (2) Crée livres/index.blade.php qui hérite du layout (@extends) et affiche une liste de livres reçue du contrôleur, avec le message flashé du chapitre 8. (3) Modifie LivreController@index pour renvoyer cette vue avec trois livres (titre, prix). (4) Partage le nom « Kitab » avec toutes les vues (View::share) et affiche-le dans le pied de page. (5) Ajoute le compositeur du menu de l'exercice 9.3 et inclus le menu dans le layout.

Exercices

Exercice 9.1

Choisis la bonne réponse

  1. 1Les vues sont rangées dans…

  2. 2L'extension d'une vue Blade est…

  3. 3view('admin.profile') charge le fichier…

  4. 4Dans view('greeting', ['name' => 'Ali']), la vue reçoit la variable…

  5. 5Pour partager une donnée avec toutes les vues, on utilise…

  6. 6Un compositeur de vue s'exécute…

  7. 7{{ $texte }} protège contre…

  8. 8La commande qui précompile les vues est…

0/8 répondues
Exercice 9.2

Une vue avec une liste

Écris : (1) une route /auteurs qui envoie à la vue auteurs un tableau de trois noms ; (2) la vue auteurs.blade.php qui affiche les noms dans une liste <ul>, ou « Aucun auteur » si la liste est vide (@forelse).

Exercice 9.3

Le compositeur du menu

Écris un compositeur (sous forme de fonction, dans AppServiceProvider) qui envoie à la vue partials.menu une variable $categories contenant ['Romans', 'Jeunesse', 'Histoire']. Écris la vue partials/menu.blade.php qui affiche ces catégories en liens.

L'essentiel du chapitre

À retenir

  • Vue = fichier HTML .blade.php dans resources/views ; view('nom', ['cle' => valeur]) ou View::make ; sous-dossiers en notation point (admin.profile) ; View::first, View::exists.
  • Blade : {{ }} (protégé), {!! !!}, @if, @foreach, @forelse/@empty, @extends, @section, @yield, @include, @csrf, @method.
  • Données : tableau ou ->with('cle', valeur) ; pour toutes les vues : View::share dans boot().
  • Compositeur : View::composer('vue', Classe::class ou fonction), méthode compose(View $view) ; plusieurs vues ou *. Créateur : View::creator (dès la création de la vue).
  • Optimisation : php artisan view:cache / view:clear.
Inscris-toi pour suivre ta progression →
Chapitre précédentManipulation des réponses HTTPChapitre suivantExamen blanc et fiche mémo

Sur cette page

  1. Objectifs
  2. 1.La création des vues
  3. 2.La transmission des données aux vues
  4. 3.Les compositeurs de vues
  5. 4.L'optimisation des vues
  6. TP · Les vues de Kitab
  7. Exercices corrigés
  8. L'essentiel