Cos'è blade?

Blade: Il Motore di Template di Laravel

Blade è il semplice ma potente motore di template fornito con il framework PHP <a href="https://it.wikiwhat.page/kavramlar/Laravel">Laravel</a>. A differenza di altri motori di template PHP, Blade ti consente di utilizzare direttamente il codice PHP nei tuoi template. I file dei template Blade usano l'estensione .blade.php e sono memorizzati tipicamente nella directory resources/views.

Vantaggi di Blade:

  • Semplicità: Sintassi intuitiva e facile da imparare.
  • Ereditarietà: Supporto per template inheritance, permettendo la creazione di layout e sezioni riutilizzabili.
  • Estendibilità: Possibilità di definire direttive personalizzate.
  • Prestazioni: Blade compila i template in codice PHP semplice, che viene memorizzato nella cache, garantendo ottime prestazioni.
  • Sicurezza: Escape automatico delle variabili per prevenire attacchi XSS.

Concetti Chiave:

  • <a href="https://it.wikiwhat.page/kavramlar/Direttive%20Blade">Direttive Blade</a>: Abbreviazioni per le comuni strutture di controllo PHP, come @if, @foreach, @else, @endif. Ad esempio, invece di scrivere <?php if ($user): ?>, puoi usare @if($user).
  • <a href="https://it.wikiwhat.page/kavramlar/Template%20Inheritance">Template Inheritance</a>: Definisci un layout base con sezioni (@yield) e poi estendilo (@extends) in altri template, sovrascrivendo le sezioni desiderate (@section).
  • <a href="https://it.wikiwhat.page/kavramlar/Componenti%20Blade">Componenti Blade</a>: Modi riutilizzabili per creare frammenti di interfaccia utente. I componenti permettono di incapsulare markup, logica e stile in elementi personalizzati.
  • <a href="https://it.wikiwhat.page/kavramlar/Stampa%20Dati">Stampa Dati</a>: Utilizzo di {{ $variable }} per stampare il valore di una variabile. Blade automaticamente esegue l'escape HTML per prevenire attacchi XSS. Usa {{{ $variable }}} per disabilitare l'escape.
  • <a href="https://it.wikiwhat.page/kavramlar/Loop">Loop</a>: Iterazione su array e oggetti utilizzando @foreach, @forelse, @while e @endforeach direttive.
  • <a href="https://it.wikiwhat.page/kavramlar/Condizionali">Condizionali</a>: Gestione di condizioni con @if, @elseif, @else, @endif direttive.
  • <a href="https://it.wikiwhat.page/kavramlar/Inclusioni">Inclusioni</a>: Inclusione di altri template all'interno di un template Blade utilizzando @include.

Esempio:

// resources/views/layouts/app.blade.php
<!DOCTYPE html>
<html>
<head>
    <title>@yield('title')</title>
</head>
<body>
    @yield('content')
</body>
</html>

// resources/views/welcome.blade.php
@extends('layouts.app')

@section('title', 'Homepage')

@section('content')
    <h1>Benvenuto, {{ $name }}!</h1>
    <p>Oggi è: {{ $date }}</p>

    @if (count($users) > 0)
        <ul>
            @foreach ($users as $user)
                <li>{{ $user->name }}</li>
            @endforeach
        </ul>
    @else
        <p>Nessun utente disponibile.</p>
    @endif
@endsection

In sintesi, Blade è un componente fondamentale di Laravel che semplifica la creazione di interfacce utente dinamiche e manutenibili. La sua sintassi intuitiva e le potenti funzionalità lo rendono uno strumento essenziale per lo sviluppo web con Laravel.