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> Auch in der Bibliothek
GraphQL für Swift: Apollo iOS — Client für iOS und macOS
Caching in C++: Cache++ Bibliothek
JWT-Tokens in Rust: Die Bibliothek jsonwebtoken und Authentifizierung
Java Management Extensions (JMX) — Überwachung von Java-Anwendungen