🔺 Moyen 10 questions

QCM Laravel - Blade Templates

Quiz interactif sur Blade, le moteur de templates de Laravel. Testez vos connaissances sur les directives, layouts et composants.

#php #laravel

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.