QCM Laravel - Blade Templates
Quiz interactif sur Blade, le moteur de templates de Laravel. Testez vos connaissances sur les directives, layouts et composants.
Comment jouer ?
- 1. Lisez chaque question attentivement
- 2. Choisissez votre réponse parmi les options
- 3. Cliquez sur "Voir la réponse" pour vérifier
- 4. Comptez vos bonnes réponses à la fin !
Quiz: QCM Laravel - Blade Templates
10 questions | Difficulté: moyen
Question 1
Quelle syntaxe Blade permet d’afficher une variable en échappant le HTML ?
- A.
{!! $variable !!} - B.
{{ $variable }} - C.
<%= $variable %> - D.
<?= $variable ?>
Voir la réponse
Réponse correcte: B
{{ }} échappe automatiquement le HTML pour prévenir les attaques XSS. {!! !!} affiche le contenu sans échappement (à utiliser avec précaution).
Question 2
Comment hériter d’un layout parent dans une vue Blade ?
- A.
@include('layouts.app') - B.
@extends('layouts.app') - C.
@layout('layouts.app') - D.
@parent('layouts.app')
Voir la réponse
Réponse correcte: B
@extends() permet d’hériter d’un layout parent. Les sections sont ensuite définies avec @section() pour remplir les zones du layout.
Question 3
Quelle directive Blade permet de définir une section de contenu ?
- A.
@content('nom') ... @endcontent - B.
@section('nom') ... @endsection - C.
@block('nom') ... @endblock - D.
@part('nom') ... @endpart
Voir la réponse
Réponse correcte: B
@section('nom') définit une section qui peut être injectée dans un @yield('nom') du layout parent.
Question 4
Comment inclure une vue partielle dans Blade ?
- A.
@require('partials.header') - B.
@include('partials.header') - C.
@import('partials.header') - D.
@insert('partials.header')
Voir la réponse
Réponse correcte: B
@include() inclut une vue partielle. On peut passer des données: @include('partials.header', ['title' => 'Accueil']).
Question 5
Quelle directive permet de faire une boucle foreach en Blade ?
- A.
@for($item in $items) - B.
@foreach($items as $item) - C.
@loop($items as $item) - D.
@each($items as $item)
Voir la réponse
Réponse correcte: B
@foreach($items as $item) itère sur une collection. La variable $loop est automatiquement disponible et contient des infos comme $loop->first, $loop->last, $loop->index.
Question 6
Comment afficher du contenu conditionnel si l’utilisateur est authentifié ?
- A.
@if(Auth::check()) ... @endif - B.
@auth ... @endauth - C. Les deux options A et B sont correctes
- D.
@logged ... @endlogged
Voir la réponse
Réponse correcte: C
@auth est un raccourci pour @if(Auth::check()). Il existe aussi @guest pour le contenu destiné aux utilisateurs non authentifiés.
Question 7
Comment ajouter un token CSRF dans un formulaire Blade ?
- A.
<input type="hidden" name="_token" value="{{ csrf_token() }}"> - B.
@csrf - C. Les deux options A et B sont correctes
- D.
@token
Voir la réponse
Réponse correcte: C
@csrf est un raccourci Blade qui génère automatiquement le champ hidden avec le token CSRF. C’est obligatoire pour les formulaires POST, PUT, PATCH, DELETE.
Question 8
Quelle directive permet de spoofer une méthode HTTP dans un formulaire ?
- A.
@method('PUT') - B.
@http('PUT') - C.
@verb('PUT') - D.
@request('PUT')
Voir la réponse
Réponse correcte: A
@method('PUT') génère un champ hidden _method car les formulaires HTML ne supportent que GET et POST. Laravel utilise ce champ pour router vers la bonne action.
Question 9
Comment définir un composant Blade réutilisable ?
- A. Créer un fichier dans
resources/views/components/ - B. Utiliser
php artisan make:component - C. Les deux options sont des approches valides
- D. Les composants n’existent pas dans Blade
Voir la réponse
Réponse correcte: C
On peut créer un composant anonyme (juste un fichier Blade) ou un composant avec classe (via artisan). Les composants sont appelés avec <x-nom-composant />.
Question 10
Comment afficher les erreurs de validation dans Blade ?
- A.
@errors ... @enderrors - B.
@error('field') ... @enderror - C.
{{ $errors->first('field') }} - D. Les options B et C sont correctes
Voir la réponse
Réponse correcte: D
@error('field') affiche le contenu si le champ a une erreur. On peut aussi accéder directement à $errors->first('field') ou $errors->all() pour toutes les erreurs.