Laravel 11 ist jetzt verfügbar!

Laravel 11, das am 12. März 2024 auf den Markt kommt, stellt ein bedeutendes Update des Laravel dar und führt eine Reihe neuer Funktionen und Verbesserungen ein, die das Entwicklungserlebnis und die Anwendungsleistung verbessern sollen. Mit dem Schwerpunkt auf Effizienz, Sicherheit und der Entwicklung von Echtzeit-Webanwendungen bringt Laravel 11 mehrere wichtige Verbesserungen mit sich und führt Laravel Reverb ein, einen neuen WebSocket-Server für die Echtzeitkommunikation.

Laravel Support Richtlinie

Die Support-Richtlinie von Laravelstellt sicher, dass Entwickler rechtzeitig Updates, Fehlerbehebungen und Sicherheitspatches für ihre Anwendungen erhalten. Laut dieser Richtlinie bietet Laravel 18 Monate lang Support für Fehlerbehebungen und 2 Jahre lang Support für Sicherheitspatches für jede Hauptversion. Dieser strukturierte Ansatz für den Versionssupport ermöglicht es Entwicklern, ihre Upgrade-Pfade effektiv zu planen und sicherzustellen, dass ihre Anwendungen sicher und aktuell bleiben.

VersionUnterstütztes PHPDatum der VeröffentlichungFehlerbehebungen bisSicherheitskorrekturen bis
Laravel 9*8.0 - 8.2Februar 8, 2022August 8, 20236. Februar 2024
Laravel 108.1 - 8.314. Februar 20236. August 2024Februar 4, 2025
Laravel 118.2 - 8.312. März 2024September 3, 202512. März 2026
Laravel 128.2+Q1 2025Q3 2026Q1 2027
(*) Laravel 9 hat das Ende seiner Lebensdauer erreicht

PHP 8.2 Voraussetzung für Laravel 11

Mit der Veröffentlichung von Laravel 11 hat sich die Anforderung an die PHP-Version deutlich geändert. Laravel 11 schreibt PHP 8.2 als Mindestversion vor und passt das Framework damit an die neuesten Funktionen, Leistungsverbesserungen und Sicherheitsverbesserungen von PHP 8.2 an. Diese Entscheidung unterstreicht das Engagement von Laravel, die aktuellsten und robustesten verfügbaren Technologien zu nutzen, um sicherzustellen, dass Entwickler/innen hocheffiziente, sichere und innovative Anwendungen entwickeln können.

PHP 8.2 führt zahlreiche neue Funktionen und Optimierungen ein, von denen Laravel erheblich profitieren können. Dazu gehören Verbesserungen bei der objektorientierten Programmierung, neue Typen und Attribute, die bessere Codierungspraktiken fördern, und Leistungsverbesserungen, die zu einer schnelleren Ausführung der Anwendung führen können. Durch den Einsatz von PHP 8.2 stellt Laravel sicher, dass alle Anwendungen, die mit dieser Version erstellt werden, von diesen Verbesserungen profitieren, was zu zuverlässigeren und leistungsfähigeren Web-Lösungen führt.

Entwickler, die ein Upgrade auf Laravel 11 planen oder neue Projekte damit starten, müssen sicherstellen, dass ihre Serverumgebung auf PHP 8.2 aktualisiert ist. Dieses Update erleichtert nicht nur die Kompatibilität mit Laravel 11, sondern sorgt auch dafür, dass die Anwendungen von der aktiven Unterstützung durch PHP profitieren, einschließlich Sicherheitsbehebungen und Leistungsoptimierungen.

Straffe Verzeichnisstruktur

Laravel 11 vereinfacht seine Verzeichnisstruktur und reduziert damit die anfängliche Komplexität für Entwickler. Bemerkenswert, Kernel.php Dateien wurden entfernt, und Middleware kann nun direkt in der bootstrap/app.php Datei.

app.php
<?php

use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
        commands: __DIR__.'/../routes/console.php',
        health: '/up',
    )
    ->withMiddleware(function (Middleware $middleware) {
        //
    })
    ->withExceptions(function (Exceptions $exceptions) {
        //
    })->create();

Die config Verzeichnis wurde verschlankt, indem einige der Dateien entfernt wurden, die zuvor in Laravel 10 enthalten waren, wie z.B.:

  • config/broadcasting.php
  • config/cors.php
  • config/hashing.php
  • config/sanctum.php
  • config/view.php

Die routes Verzeichnis wurde auch ein wenig aufgeräumt, indem es entfernt wurde:

  • routes/api.php
  • routes/channel.php
  • routes/console.php

Eager Load Limit

Die Einführung der Funktion "Eager Load Limit" ermöglicht es Entwicklern, Bezugsmodelle effizient abzufragen, ohne das System mit unnötigen Daten zu überlasten. Diese Funktion optimiert den Datenladeprozess und ermöglicht es, die Anzahl der geladenen Bezugsdatensätze zu begrenzen und so die Anwendungsleistung zu verbessern. In früheren Versionen von Laravel musstest du ein separates Paket für die Eager Load Limit-Funktion installieren.

class User extends Model
{
    public function posts()
    {
        return $this->hasMany(Post::class);
    }
}
class Post extends Model
{
    // ...
}
$users = User::with(['posts' => function ($query) {
    $query->latest()->limit(10); 
}])->get();

Model Casts als Methoden

Laravel 11 ermöglicht es, Casts als Methoden innerhalb von Modellklassen zu definieren. Das bietet mehr Flexibilität bei der Art und Weise, wie Daten gecastet werden, wenn sie aus der Datenbank abgerufen oder in der Datenbank gespeichert werden. Dieser methodenbasierte Ansatz ermöglicht eine klarere und dynamischere Handhabung des Daten-Castings und verbessert die allgemeine Lesbarkeit und Wartbarkeit des Codes.

use App\Enums\UserOption;
use Illuminate\Database\Eloquent\Casts\AsEnumCollection;
 
// ...
 
/**
 * Get the attributes that should be cast.
 *
 * @return array<string, string>
 */
protected function casts(): array
{
    return [
        'email_verified_at' => 'datetime',
        'password' => 'hashed',
        'options' => AsEnumCollection::of(UserOption::class),
    ];
}

Zum Vergleich: In Laravel 10 würde dieses Model Cast mit der $cast Array-Eigenschaft, aber du könntest keine statischen Methoden aufrufen.

protected $casts = [
    'options' => AsEnumCollection::class.':'.UserOption::class,
];

Laravel Reverb: Kommunikation in Echtzeit

Laravel Reverb ist eine der aufregendsten Neuerungen in Laravel 11. Es handelt sich um einen WebSocket-Server, der die Echtzeitkommunikation zwischen Client und Server ermöglicht. Reverb ist auf hohe Leistung ausgelegt und kann Tausende von Verbindungen gleichzeitig unterstützen, ohne die Ineffizienzen des HTTP-Pollings. Es fügt sich nahtlos in die bestehenden Broadcasting-Funktionen von Laravelein und ist auf Skalierbarkeit ausgelegt, mit Unterstützung für horizontale Skalierung durch Redis. Das macht es zu einer robusten Lösung für Entwickler, die Echtzeitfunktionen in ihre Anwendungen integrieren möchten, wie z. B. Live-Chat, Benachrichtigungen und dynamische Inhaltsaktualisierungen.

Reverb ist auf Geschwindigkeit optimiert und lässt sich für die Bereitstellung reibungslos in Laravel Forge integrieren und bietet integrierte Monitoring-Unterstützung mit Pulse. Durch die Verwendung des Pusher-Protokolls ist die Kompatibilität mit Laravel Broadcasting und Laravel Echo gewährleistet, was die Entwicklung von ansprechenden und interaktiven Webanwendungen erleichtert.

Praktische Umsetzung und Skalierung

Die Implementierung von Laravel Reverb umfasst die Installation des Pakets, die Konfiguration entsprechend den Anforderungen deines Projekts und die Integration der Optimierungen zur Verbesserung deiner Anwendung. Das Testen und Validieren dieser Integrationen ist entscheidend, um sicherzustellen, dass die Echtzeitfunktionen wie erwartet funktionieren. Es wird auch empfohlen, die Anwendungsleistung nach dem Einsatz zu überwachen, um mögliche Engpässe zu erkennen und zu beheben.

Neue Handwerker-Befehle

Die neuen Artisan-Befehle von Laravel 11 sind ein Segen für die Produktivität von Entwicklern, da sie den Boilerplate-Code, der beim Hinzufügen neuer Komponenten zu einer Anwendung erforderlich ist, erheblich reduzieren. Mit den Befehlen zum Erzeugen von Klassen, Enums, Interfaces und Traits können Entwickler jetzt mit minimalem Aufwand neue Teile ihrer Anwendung einrichten. Diese Befehle wurden entwickelt, um den Entwicklungsprozess zu rationalisieren und eine schnellere Einrichtung und Strukturierung von Anwendungslogik und Datendarstellungen zu ermöglichen. Durch die Verwendung dieser Befehle können Entwickler die Best Practices für die Codeorganisation und die Wartbarkeit einhalten und sicherstellen, dass ihre Codebasis sauber und gut strukturiert bleibt.

Zum Beispiel hat die Einführung von php artisan make:enum vereinfacht die Erstellung von Enums, die nützlich sind, um eine Reihe von benannten Konstanten zu definieren. Enums können deinen Code lesbarer und weniger fehleranfällig machen, indem sie die Werte begrenzen, die eine Variable haben kann. In ähnlicher Weise kann die php artisan make:interface und php artisan make:trait Befehle erleichtern die Übernahme der SOLID-Prinzipien, indem sie die Verwendung von Schnittstellen zur Definition von Verträgen innerhalb einer Anwendung und von Traits zur gemeinsamen Nutzung von Methoden in verschiedenen Klassen fördern.

Gesundheitsroute und APP_KEY-Rotation

Die /up health route und die APP_KEY-Rotation sind entscheidend für die Sicherheit und Zuverlässigkeit von Laravel . Die Health-Route bietet eine einfache Möglichkeit, um zu überprüfen, ob deine Anwendung läuft und ansprechbar ist, was sie für die Überwachung der Betriebszeit und für Warnsysteme von unschätzbarem Wert macht. Durch die Integration dieser Route können Entwickler/innen ganz einfach Gesundheitsprüfungen einrichten, die den Status der Anwendung überwachen und eventuelle Ausfälle schnell erkennen und darauf reagieren.

Die Funktion APP_KEY Rotation behebt ein häufiges Sicherheitsproblem, indem sie die sichere Rotation des Verschlüsselungsschlüssels der Anwendung ermöglicht, ohne Datenverlust zu riskieren. In früheren Versionen von Laravel war die Änderung des APP_KEY könnte dazu führen, dass die Daten aufgrund der Abhängigkeit der Verschlüsselung von diesem Schlüssel nicht mehr zugänglich sind. Laravel 11 führt einen flexibleren Ansatz ein, der es ermöglicht, alte Daten mit früheren Schlüsseln zu entschlüsseln, die in der APP_PREVIOUS_KEYS Umgebungsvariable, während neue Daten mit dem aktuellen Schlüssel verschlüsselt werden. Diese Funktion ist für die Aufrechterhaltung hoher Sicherheitsstandards unerlässlich, da regelmäßig rotierende Schlüssel vor bestimmten Arten von kryptografischen Angriffen schützen können, ohne den Nachteil, dass der Zugriff auf verschlüsselte Daten verloren geht.

Laravel 11 installieren

Wenn du eine neue Laravel 11-Installation einrichten möchtest, folgst du einfach den normalen Verfahren zur manuellen Installation von Laravel oder über Softaculous.

Wie man auf Laravel 11 aktualisiert

Es gibt zwei Möglichkeiten, um auf Laravel 11 zu aktualisieren. Du kannst das Upgrade manuell durchführen, indem du dem Upgrade Guide vonLaravel folgst, oder du bezahlst für Laravel Shift, um den Upgrade-Prozess zu automatisieren.

Fazit

Zusammengenommen unterstreichen diese Verbesserungen in Laravel 11 das Engagement des Frameworks, effiziente Entwicklungspraktiken zu ermöglichen und gleichzeitig die Sicherheit und Widerstandsfähigkeit von Anwendungen zu gewährleisten. Mit diesen Funktionen bietet Laravel weiterhin eine robuste Grundlage für die Entwicklung und Wartung moderner PHP-Anwendungen und hält mit den sich wandelnden Anforderungen von Entwicklern und der gesamten Branche Schritt.

Steigere deine Laravel mit unserem spezialisierten Laravel . Erlebe schnellere Geschwindigkeiten für deine Laravel und Websites dank NVMe , Serverschutz, dedizierten Ressourcen und Optimierungstools.

Häkchen setzen99,99% Betriebszeit Häkchen setzenKostenloses SSL Häkchen setzenDedizierte IP-Adresse Häkchen setzenEntwickler-Tools

Laravel Hosting

Diesen Artikel teilen
Gepostet in Laravel auf

Eine Antwort hinterlassen

Deine E-Mail Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert