Blade für PHP: Das komplette Tutorial mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Blade für PHP: Das komplette Tutorial mit Beispielen

1. Was ist Blade und wofür wird es benötigt?

Blade ist eine leistungsstarke und elegante Template-Engine, die Teil des Laravel-Frameworks ist. Sie bietet eine komfortable Syntax für die Arbeit mit HTML-Vorlagen und ermöglicht es Entwicklern, die Darstellungslogik von der Geschäftslogik der Anwendung zu trennen. Im Gegensatz zu reinem PHP bietet Blade prägnante Konstrukte für Schleifen, Bedingungen, Template-Vererbung und das Einfügen von Komponenten, was den Code lesbarer und wartbarer macht.

Die Hauptaufgabe von Blade besteht darin, die Erstellung dynamischer Webseiten zu vereinfachen. Es kompiliert Vorlagen in normalen PHP-Code, der zwischengespeichert wird, bis die Vorlage geändert wird. Dies gewährleistet eine hohe Leistung, da bei jeder Anfrage keine erneute Kompilierung erforderlich ist. Blade bietet außerdem einen integrierten Schutz vor XSS-Angriffen durch die Escape-Funktion {{ }}.

Blade ist ideal für Laravel-Projekte, kann aber auch separat verwendet werden (z. B. über das Paket jenssegers/blade). Es unterstützt Template-Vererbung (Layouts), Abschnitte (Sections), Komponenten, Slots, bedingte Direktiven und vieles mehr. Dank seiner Einfachheit und Flexibilität ist Blade der De-facto-Standard für Templating im PHP-Ökosystem.

2. Installation

Blade wird zusammen mit Laravel ausgeliefert. Für die Verwendung innerhalb des Frameworks ist keine zusätzliche Installation erforderlich. Wenn Sie Blade separat nutzen möchten (z. B. in einem Projekt ohne Laravel), installieren Sie das Paket über Composer:

composer require jenssegers/blade

Nach der Installation müssen Sie eine Instanz der Blade-Klasse erstellen und die Pfade zu den Vorlagen und dem Cache angeben:

use Jenssegers\Blade\Blade;

$blade = new Blade('views', 'cache');
echo $blade->render('index', ['name' => 'Welt']);

Wobei views der Ordner mit den Vorlagen und cache der Ordner für die zwischengespeicherten Dateien ist.

3. Schnellstart – ein minimales funktionierendes Beispiel

Erstellen Sie eine Vorlagendatei views/hello.blade.php:

<!DOCTYPE html>
<html>
<head>
    <title>Hallo, {{ $name }}!</title>
</head>
<body>
    <h1>Willkommen, {{ $name }}!</h1>
    @if (strlen($name) > 5)
        <p>Sie haben einen langen Namen!</p>
    @else
        <p>Ein kurzer und netter Name.</p>
    @endif
</body>
</html>

Erstellen Sie nun ein PHP-Skript zum Rendern:

require 'vendor/autoload.php';

use Jenssegers\Blade\Blade;

$blade = new Blade('views', 'cache');
echo $blade->render('hello', ['name' => 'Alexander']);

Ergebnis: Eine HTML-Seite mit einer Begrüßung und einer bedingten Nachricht.

4. Wichtige Methoden/Funktionen/Klassen

4.1. @extends – Template-Vererbung

Signatur: @extends('layout.name')

Funktion: Gibt an, dass die aktuelle Vorlage eine andere (übergeordnete) Vorlage erbt.

Beispiel:

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

<!-- pages/home.blade.php -->
@extends('layouts.app')

@section('title', 'Startseite')

@section('content')
    <h1>Willkommen!</h1>
@endsection

4.2. @section und @yield – Abschnitte (Sections)

Signatur: @section('name', 'default') und @yield('name', 'default')

Funktion: Definiert einen Inhaltsabschnitt, der über @yield in die übergeordnete Vorlage eingefügt wird.

Beispiel:

<!-- parent.blade.php -->
<div>
    @yield('sidebar', 'Seitenleiste')
</div>

Empfehlungen