Zum Hauptinhalt springen

Einleitung

Laravel 13 wurde am 17. März 2026 veröffentlicht. Es ist das jährlich anstehende Major-Release, doch Laravel 13 legt besonderen Fokus auf KI-native Workflows, sicherere Defaults und ausdrucksstärkere Developer-APIs. Breaking Changes sind auf ein Minimum reduziert; die meisten Anwendungen lassen sich mit geringen Anpassungen aktualisieren. Gleichzeitig sind zahlreiche neue Funktionen wie das Laravel AI SDK und die semantische Suche hinzugekommen, die die moderne Anwendungsentwicklung deutlich verändern.
Support-Richtlinie für Laravel 13: Bugfixes bis Q3 2027, Security-Fixes bis zum 17. März 2028.

Aktualisierte PHP-Voraussetzungen

Laravel 13 setzt PHP 8.3 oder höher voraus. Der Support für PHP 8.2 endet.
VersionPHPVeröffentlichungBugfix-EndeSecurity-Fix-Ende
118.2 – 8.412. März 20243. September 202512. März 2026
128.2 – 8.524. Februar 202513. August 202624. Februar 2027
138.3 – 8.517. März 2026Q3 202717. März 2028
Als Hauptvorteile von PHP 8.3 stehen typisierte Konstanten, die Funktion json_validate() und das Attribut #[\Override] zur Verfügung.

Wichtigste neue Features

Laravel AI SDK

Das Highlight von Laravel 13 ist das First-Party AI SDK. Es bietet eine einheitliche API für Textgenerierung, Tool-aufrufende Agenten, Embeddings, Audio, Bildgenerierung und Vector-Store-Integrationen. KI-Funktionen lassen sich anbieterunabhängig aufbauen, während die typische Laravel-Developer-Experience erhalten bleibt. Textgenerierung (Agent)
use App\Ai\Agents\SalesCoach;

$response = SalesCoach::make()->prompt('Analysieren Sie dieses Verkaufsgesprächs-Transkript ...');

return (string) $response;
Bildgenerierung
use Laravel\Ai\Image;

$image = Image::of('Ein Donut auf der Küchentheke')->generate();

$rawContent = (string) $image;
Sprachsynthese
use Laravel\Ai\Audio;

$audio = Audio::of('Ich liebe es, mit Laravel zu coden.')->generate();

$rawContent = (string) $audio;
Embeddings generieren
use Illuminate\Support\Str;

$embeddings = Str::of('Die Weine aus dem Napa Valley sind erstklassig.')->toEmbeddings();
Weitere Details finden Sie in der Laravel-AI-SDK-Dokumentation.

Semantische Suche / Vektorsuche

In Verbindung mit dem AI SDK wurde native Vector-Query-Unterstützung ergänzt. Semantische Suche mit PostgreSQL und pgvector lässt sich direkt aus dem Query Builder ausführen.
$documents = DB::table('documents')
    ->whereVectorSimilarTo('embedding', 'Die besten Weingüter im Napa Valley')
    ->limit(10)
    ->get();
Vom Hinzufügen der Embedding-Spalte bis zur Query bleibt alles innerhalb des Laravel-Ökosystems.

JSON:API-Ressourcen

Laravel unterstützt nun First-Party-JSON:API-Ressourcen. Responses konform zur JSON:API-Spezifikation lassen sich einfach zurückgeben.
  • Serialisierung von Ressourcenobjekten
  • Einbindung von Relationships
  • Sparse Fieldsets
  • Links
  • JSON:API-konforme Response-Header

Ausbau der PHP-Attribute

Laravel 13 erweitert die deklarative Konfiguration per PHP-Attribut auf das gesamte Framework. Anwendung an Controllern
<?php

namespace App\Http\Controllers;

use App\Models\Comment;
use App\Models\Post;
use Illuminate\Routing\Attributes\Controllers\Authorize;
use Illuminate\Routing\Attributes\Controllers\Middleware;

#[Middleware('auth')]
class CommentController
{
    #[Middleware('subscribed')]
    #[Authorize('create', [Comment::class, 'post'])]
    public function store(Post $post)
    {
        // ...
    }
}
Anwendung an Queue-Jobs
use Illuminate\Queue\Attributes\Tries;
use Illuminate\Queue\Attributes\Backoff;
use Illuminate\Queue\Attributes\Timeout;
use Illuminate\Queue\Attributes\FailOnTimeout;

#[Tries(3)]
#[Backoff(60)]
#[Timeout(120)]
#[FailOnTimeout]
class ProcessPodcast implements ShouldQueue
{
    // ...
}
Wichtige neu hinzugekommene Attribute:
AttributZweck
#[Middleware]Middleware für Controller und Methoden anwenden
#[Authorize]Policy-Check am Controller
#[Tries]Maximale Versuchsanzahl eines Queue-Jobs
#[Backoff]Backoff-Zeit eines Queue-Jobs
#[Timeout]Timeout eines Queue-Jobs
#[FailOnTimeout]Job-Fehlgeschlagen-Flag bei Timeout
Auch bei Eloquent, Events, Notifications, Validation, Testing sowie den APIs zur Ressourcen-Serialisierung wurden zusätzliche Attribute eingeführt.

Queue-Routing

Mit Queue::route(...) lassen sich die Default-Routing-Regeln für Queue und Connection eines bestimmten Jobs an einer zentralen Stelle definieren.
use App\Jobs\ProcessPodcast;
use Illuminate\Support\Facades\Queue;

Queue::route(ProcessPodcast::class, connection: 'redis', queue: 'podcasts');
Queue-Namen müssen nicht mehr in Job-Klassen hardcodiert werden, und die Infrastruktur-Konfiguration lässt sich vom Code trennen.

Verlängern der Cache-TTL

Mit Cache::touch(...) verlängern Sie die TTL eines Cache-Eintrags, ohne dessen Wert lesen und neu speichern zu müssen.
// TTL um 3600 Sekunden verlängern, ohne den aktuellen Wert zu verändern
Cache::touch('expensive-computation', 3600);

Sicherheitsverbesserungen

Verstärkter CSRF-Schutz (PreventRequestForgery)

Die CSRF-Middleware wurde von VerifyCsrfToken in PreventRequestForgery umbenannt; zusätzlich wurde eine Prüfung der Anfrageherkunft über den Header Sec-Fetch-Site ergänzt.
use Illuminate\Foundation\Http\Middleware\PreventRequestForgery;

// Middleware in Tests ausschließen
->withoutMiddleware([PreventRequestForgery::class]);
VerifyCsrfToken bleibt als deprecated Alias erhalten, die Migration auf den neuen Klassennamen wird jedoch empfohlen.

Beschränkung der Cache-Deserialisierung

In config/cache.php wurde die Option serializable_classes ergänzt; der Default ist false. Damit werden PHP-Deserialisierungsangriffe im Fall eines geleakten APP_KEY verhindert.
// config/cache.php
'serializable_classes' => [
    App\Data\CachedDashboardStats::class,
    App\Support\CachedPricingSnapshot::class,
],
Wenn Sie PHP-Objekte im Cache speichern, müssen Sie die entsprechenden Klassen explizit in die Allow-List aufnehmen.

Änderungen an den Starterkits

Die in Laravel 12 überarbeiteten Starterkits (React-/Vue-/Livewire-Basis) sind auch in Laravel 13 weiterhin verfügbar. Passend zum Release von Laravel 13 wurde auch Inertia v3 veröffentlicht. Wichtige Änderungen:
  • Einfachere Layout-Props
  • Unterstützung für Vite 8
  • Neuer withApp-Callback
  • Neue Blade-Komponenten
Wenn Sie Inertia v3 einsetzen, sollten Sie das Upgrade parallel durchführen.

Weitere Verbesserungen

KI-gestütztes Upgrade (Laravel Boost)

Laravel Boost ist ein First-Party-MCP-Server. In Verbindung mit KI-Editoren wie Claude Code, Cursor, OpenCode, Gemini oder VS Code lässt sich das Upgrade über den Slash-Command /upgrade-laravel-v13 teilautomatisieren.
composer require laravel/boost:^2.0 --dev

Ergänzungen bei den Contracts

An folgenden Contracts wurden neue Methoden ergänzt:
ContractErgänzte Methoden
Bus\DispatcherdispatchAfterResponse
Routing\ResponseFactoryeventStream (SSE-Unterstützung)
Auth\MustVerifyEmailmarkEmailAsUnverified
Queue\QueuependingSize, delayedSize, reservedSize, creationTimeOfOldestPendingJob
Cache\Store / Cache\Repositorytouch

Fazit

Laravel 13 steht für „wenige Breaking Changes, viele neue Features”. Der Upgrade-Aufwand ist gering, während insbesondere das AI SDK und die semantische Suche das Potenzial besitzen, die Art moderner Anwendungsentwicklung zu verändern. Wenn Sie eine bestehende Anwendung von Laravel 12 auf 13 aktualisieren möchten, finden Sie im folgenden Guide die detaillierte Anleitung.

Upgrade-Anleitung von Laravel 12 auf 13

Übersicht der Breaking Changes und Schritt-für-Schritt-Upgrade-Anleitung.
Zuletzt geändert am 13. Juli 2026