Laravel Blade permet de structurer vos vues en composants réutilisables, simplifiant la maintenance et la personnalisation de votre application. Voici un guide détaillé pour créer un répertoire
resources/views/components
contenant les fichiers
header.blade.php
,
nav.blade.php
, et
footer.blade.php
.
Table des matières : [Masquer]
Étape 1 : Création du Dossier des Composants
- Créer le répertoire via le terminal :bash
mkdir resources/views/components
ou manuellement en naviguant dans le répertoire
resources/views
.
- Ajouter les fichiers nécessaires :
-
header.blade.php
-
nav.blade.php
-
footer.blade.php
-
Étape 2 : Création des Composants
a)
header.blade.php
header.blade.php
Contenu du fichier :
blade
<header class="bg-blue-600 text-white py-4"> <div class="container mx-auto flex justify-between items-center"> <h1 class="text-lg font-bold">Laravel 11 Project</h1> <p>Welcome to the best app!</p> </div> </header>
Explications :
-
bg-blue-600
: Couleur d’arrière-plan bleue.
-
text-white
: Texte en blanc.
-
py-4
: Marges internes verticales (padding) de 1 rem.
-
flex
et
justify-between
: Disposition en flexbox pour espacer les éléments.
Contenu du fichier :
blade
<nav class="bg-gray-800 text-white py-2"> <div class="container mx-auto flex justify-between items-center"> <ul class="flex space-x-4"> <li><a href="{{ url('/') }}" class="hover:text-yellow-400">Home</a></li> <li><a href="{{ url('/about') }}" class="hover:text-yellow-400">About</a></li> <li><a href="{{ url('/contact') }}" class="hover:text-yellow-400">Contact</a></li> </ul> <div> @auth <a href="{{ url('/dashboard') }}" class="hover:text-yellow-400">Dashboard</a> @else <a href="{{ route('login') }}" class="hover:text-yellow-400">Login</a> @endauth </div> </div> </nav>
Explications :
-
space-x-4
: Ajoute un espacement horizontal de 1 rem entre les liens.
-
@auth
: Vérifie si l’utilisateur est connecté pour afficher un lien vers le tableau de bord.
-
hover:text-yellow-400
: Change la couleur du texte en jaune au survol.
Contenu du fichier :
blade
<footer class="bg-gray-700 text-white py-4 mt-8"> <div class="container mx-auto text-center"> <p>© {{ date('Y') }} Laravel Project. All rights reserved.</p> <a href="{{ url('/privacy-policy') }}" class="text-blue-400 hover:underline">Privacy Policy</a> </div> </footer>
Explications :
-
mt-8
: Ajoute une marge supérieure (margin-top) de 2 rem.
-
text-center
: Centre le texte horizontalement.
-
text-blue-400 hover:underline
: Lien bleu avec soulignement au survol.
Étape 3 : Intégration des Composants dans le Layout Principal
- Créer ou modifier le fichier
resources/views/layouts/app.blade.php
:blade
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>@yield('title', 'Laravel 11 Project')</title> <link rel="stylesheet" href="{{ asset('css/app.css') }}"> </head> <body> <!-- Include Header --> @include('components.header') <!-- Include Navigation --> @include('components.nav') <!-- Main Content --> <main class="container mx-auto py-6"> @yield('content') </main> <!-- Include Footer --> @include('components.footer') <script src="{{ asset('js/app.js') }}"></script> </body> </html>
Explications :
-
@include('components.header')
: Inclut le fichier
header.blade.php
.
-
@yield('content')
: Emplacement pour injecter le contenu spécifique à chaque page.
Étape 4 : Configuration de la Route pour la Page d’Accueil
Ajoutez une route dans
routes/web.php
pour rendre accessible la page d’accueil :
php
use Illuminate\Support\Facades\Route; Route::get('/', function () { return view('home'); });
- Créer le fichier
resources/views/home.blade.php
:blade
@extends('layouts.app') @section('title', 'Home') @section('content') <h1 class="text-2xl font-bold text-center">Bienvenue sur Laravel 11 Project</h1> <p class="text-center mt-4">Commencez à explorer les fonctionnalités.</p> @endsection
Étape 5 : Compilation des Fichiers CSS et JS
- Assurez-vous que Laravel Mix compile vos fichiers CSS et JS :bash
npm install npm run dev
- Votre fichier
webpack.mix.js
doit contenir :javascript
const mix = require('laravel-mix'); mix.js('resources/js/app.js', 'public/js') .postCss('resources/css/app.css', 'public/css', [ require('tailwindcss'), ]);
Exemple Complet de Résultat
Page d’accueil accessible via
/
:
- Header bleu avec le titre et le slogan.
- Barre de navigation dynamique (liens vers
Home
,
About
,
Contact
).
- Footer contenant la politique de confidentialité et l’année actuelle.
Avantages :
- Réutilisabilité : Les composants peuvent être utilisés dans plusieurs mises en page.
- Clarté : Le code est organisé et maintenable.
- Flexibilité : Vous pouvez personnaliser chaque composant indépendamment.