Allgemein

Laravel 11: Die spannenden Änderungen in Ein Blick in die Zukunft

Geschrieben von:

Geschrieben am:

Tags :

laravel

In der pulsierenden Welt der Webentwicklung ist es ein Framework wie Laravel 11, das den pulsierenden Takt vorgibt. Als eines der beliebtesten PHP-Frameworks ist Laravel für seine Eleganz, Einfachheit und Zugänglichkeit bekannt. Es ermöglicht Entwicklern, mühelos komplexe Anwendungen zu erstellen, und hat sich seit seiner Einführung im Jahr 2011 einen festen Platz in der Herzen der PHP-Community gesichert.

Mit jedem neuen Release scheint Laravel sich selbst zu übertreffen, und das kommende Laravel 11 ist keine Ausnahme. Geplant für das erste Quartal 2024, wird diese neue Version die Art und Weise, wie wir Laravel sehen und nutzen, auf eine neue Ebene heben. Die Entwickler hinter Laravel haben eine Fülle von Änderungen und Verbesserungen versprochen, die das Framework effizienter, leichter zu navigieren und insgesamt besser zu handhaben machen.

Die Ankündigung von Laravel 11 hat bereits Wellen der Begeisterung in der Entwicklergemeinschaft erzeugt. Jeder ist gespannt auf die neuen Funktionen und Optimierungen, die dieses Update mit sich bringen wird. Von vereinfachten Verzeichnisstrukturen bis hin zu verbesserten Modell-Casts, Laravel 11 verspricht, eine frische Brise in die tägliche Routine der Laravel-Entwickler zu bringen.

Aber was genau können wir von Laravel 11 erwarten? Welche neuen Features und Verbesserungen sind in der Pipeline? Und vor allem, wie werden diese Änderungen die Art und Weise beeinflussen, wie wir mit Laravel arbeiten? In den folgenden Abschnitten werden wir tief in die spannenden Neuerungen eintauchen, die Laravel 11 zu bieten hat, und einen Blick darauf werfen, wie diese das Laravel-Erlebnis verbessern werden.

Seien Sie also gespannt, schnallen Sie sich an und begleiten Sie uns auf dieser aufregenden Reise in die Zukunft von Laravel!

Laravel 11: Die spannenden Änderungen in Ein Blick in die Zukunft

Laravel 11 Vereinfachte Verzeichnisstruktur:

Einer der herausragenden Merkmale von Laravel 11 ist die Überarbeitung seiner Verzeichnisstruktur, die auf eine stärkere Vereinfachung und Rationalisierung abzielt. Ein sauber organisiertes und intuitives Verzeichnissystem ist ein Segen für Entwickler, da es die Auffindbarkeit von Dateien erleichtert und die Übersichtlichkeit des Projekts verbessert. Laravel 11 nimmt diese Philosophie zu Herzen und stellt eine verfeinerte Verzeichnisstruktur vor, die weniger überladen und leichter zu navigieren ist.

Zum Beispiel erweitern Controller in Laravel 11 standardmäßig nichts mehr. Dies ist eine bewusste Entscheidung, die darauf abzielt, die Menge des Boilerplate-Codes zu reduzieren, den Entwickler schreiben müssen. Es ist eine willkommene Änderung, die darauf abzielt, die Entwicklererfahrung zu vereinfachen und zu verbessern.

Ebenso markant ist die Entfernung des Middleware-Verzeichnisses. Bisher enthielt Laravel neun Middleware, von denen viele nie angepasst werden müssten. In Laravel 11 werden alle Anpassungen, die zuvor im Middleware-Verzeichnis vorgenommen wurden, nun in der App/ServiceProvider vorgenommen. Hier ein kleiner Code-Schnipsel, der dies veranschaulicht:

public function boot(): void
{
    EncryptCookies::except(['some_cookie']);
}

Diese Änderung zielt darauf ab, das Framework schlanker und weniger überladen zu machen, ohne dabei die Flexibilität und Anpassbarkeit zu opfern, die Laravel seit jeher auszeichnen.

Entfernung von Http/Kernel:

Die Entwickler hinter Laravel haben in der Version 11 eine mutige Entscheidung getroffen: Sie haben den Http/Kernel entfernt, eine Komponente, die bisher ein zentraler Bestandteil des Frameworks war. Die meisten Aufgaben, die Entwickler zuvor im Kernel erledigt haben, können nun im Bootstrap/App erledigt werden. Dies ist ein bedeutender Schritt in Richtung einer schlankeren, weniger verschachtelten Struktur, der das Framework leichter verständlich und wartbar macht.

In Laravel 10 und früheren Versionen war der Http/Kernel der Ort, an dem Entwickler ihre Middleware und Request-Handling-Logik definieren würden. Hier ist ein Beispiel dafür, wie die neue Struktur in Laravel 11 aussehen könnte:

return Application::configure()
    ->withProviders()
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
        commands: __DIR__.'/../routes/console.php',
    )
    ->withMiddleware(function(Middleware $middleware) {
        $middleware->web(append: LaraconMiddleware::class);
    });

Mit dieser neuen Herangehensweise wird die Konfiguration des Frameworks vereinfacht und zentralisiert, was die Wartung erleichtert und die Entwicklerproduktivität steigert. Diese Änderung zeigt, dass die Entwickler hinter Laravel darauf abzielen, ein schlankes, effizientes und gut organisiertes Framework zu schaffen, das den Entwicklern hilft, ihre Ziele effizienter zu erreichen.

Änderungen an Model Casts:

Model Casting ist eine der Funktionen, die Laravel zu einem mächtigen und flexiblen Framework machen. Es ermöglicht Entwicklern, Datenbankwerte in gewünschte Datentypen umzuwandeln, bevor sie in den Anwendungslogiken verwendet werden. In Laravel 11 erfährt das Model Casting eine bemerkenswerte Veränderung, die sowohl die Funktionalität als auch die Benutzerfreundlichkeit verbessert.

Bisher wurden Model Casts als Eigenschaften innerhalb von Modellen definiert. Laravel 11 führt eine neue Methode ein, bei der Model Casts als Methode anstatt als Eigenschaft definiert werden. Dies bietet den Entwicklern mehr Flexibilität und ermöglicht zusätzliche Funktionen. Hier ist ein Beispiel, das die neue Methode zeigt:

protected function casts(): array
{
    return [
        'email_verified_at' => 'datetime',
        'password' => 'hashed',
        'options'=> AsEnumCollection::of(UserOption::class),
    ];
}

Durch diese Änderung können Entwickler nun andere Methoden direkt von den Casts aus aufrufen, was die Casts leistungsfähiger und vielseitiger macht. Zum Beispiel ermöglicht die neue AsEnumCollection-Methode die einfache Handhabung von Enumerationskollektionen direkt aus den Casts heraus.

Konfigurationsänderungen:

In der Welt von Laravel spielen Konfigurationsdateien eine zentrale Rolle, um das Verhalten und die Einstellungen des Frameworks nach den Bedürfnissen des Projekts anzupassen. Bisher hatte Laravel eine Vielzahl von Konfigurationsdateien, die in einem speziellen Verzeichnis organisiert waren. Mit Laravel 11 erleben wir eine bedeutende Veränderung in der Art und Weise, wie Konfigurationen gehandhabt werden.

Laravel 11 verabschiedet sich von den zahlreichen Konfigurationsdateien und führt stattdessen eine kaskadierende Konfiguration ein, bei der alle Konfigurationsoptionen über die .env-Datei gesteuert werden. Die .env-Datei wird erweitert, um alle Optionen aufzunehmen, die Entwickler möglicherweise festlegen möchten. Dies vereinfacht die Konfigurationsverwaltung erheblich und macht das System übersichtlicher.

Zusätzlich gibt es ein neues Kommando config:publish, mit dem Entwickler spezifische Konfigurationsdateien zurückholen können, falls sie diese benötigen. Auch nach dem Zurückholen der Konfigurationen ermöglicht die neue Kaskadenfunktion das Entfernen jeder Option, die nicht angepasst werden muss.

php artisanconfig:publish

Diese Änderung fördert eine sauberere und klarere Konfigurationsstruktur, die weniger einschüchternd für Neueinsteiger ist und die Wartbarkeit für erfahrene Entwickler verbessert. Statt sich durch eine Vielzahl von Konfigurationsdateien zu wühlen, können Entwickler jetzt alle ihre Konfigurationseinstellungen an einem zentralen Ort finden und verwalten.

Verschlankte Standard-Migrationen:

In den Anfängen eines jeden Laravel-Projekts spielt die Einrichtung der Datenbank eine entscheidende Rolle. Migrationen sind hierbei das Werkzeug der Wahl, um die Struktur der Datenbank zu definieren und zu ändern. Bisher kamen neue Laravel-Anwendungen mit einer Reihe von Standardmigrationen, die aus den Jahren 2014 und 2019 stammten. Diese waren nützlich, um einen schnellen Start zu ermöglichen, konnten aber auch überwältigend sein und für Unordnung sorgen, besonders in größeren Projekten.

Laravel 11 nimmt sich dieses Themas an und präsentiert eine verschlankte Version der Standardmigrationen. Die bisherigen Migrationsdateien werden nun in nur zwei Dateien zusammengefasst, was die Organisation und Verwaltung der Datenbankmigrationen erheblich erleichtert. Diese Änderung bedeutet weniger Unordnung und eine klarere Struktur, was insbesondere Neueinsteigern den Einstieg erleichtern dürfte.

Hier ein Beispiel dafür, wie die neuen Standardmigrationen in Laravel 11 aussehen könnten:

// 2024_01_01_000000_create_users_table.php
...
// 2024_01_01_000001_create_password_resets_table.php
...

Indem die Anzahl der Standardmigrationen reduziert und die vorhandenen Migrationen besser organisiert werden, ermöglicht Laravel 11 eine schnellere und einfachere Initialisierung neuer Projekte. Entwickler können nun leichter den Überblick über ihre Migrationsdateien behalten und bei Bedarf zusätzliche Migrationen hinzufügen.

Routenänderungen:

Routen sind das Rückgrat jeder Laravel-Anwendung, sie leiten die Anfragen an die entsprechenden Controller und Aktionen weiter. In früheren Versionen von Laravel wurden Routen in verschiedenen Dateien organisiert, was zwar eine klare Trennung ermöglichte, aber auch zu einer gewissen Komplexität führen konnte, insbesondere in größeren Projekten. Laravel 11 bringt hier einige Neuerungen, die die Verwaltung von Routen vereinfachen und das Framework insgesamt benutzerfreundlicher machen.

Standardmäßig wird Laravel 11 nur noch zwei Routendateien haben: console.php und web.php. Diese Änderung zielt darauf ab, die Routenverwaltung zu vereinfachen und die Struktur der Routendateien klarer zu gestalten.

Für Projekte, die eine API benötigen, wird es nun eine optionale Aktivierung über den Befehl php artisan install:api geben. Dieser Befehl fügt die API-Routendatei und Laravel Sanctum hinzu, eine beliebte Bibliothek für die API-Authentifizierung.

php artisan install:api

Ähnlich verhält es sich mit Websocket-Broadcasting. Wenn Ihr Projekt Websocket-Broadcasting benötigt, können Sie dies durch den Befehl php artisan install:broadcasting aktivieren.

php artisan install:broadcasting

Diese Änderungen bieten eine klarere und einfachere Struktur für die Verwaltung von Routen, was die Entwicklerproduktivität verbessert und die Einrichtung neuer Projekte beschleunigt. Die Möglichkeit, bestimmte Routen und Funktionen nach Bedarf zu aktivieren, bietet zudem eine größere Flexibilität und ermöglicht es den Entwicklern, ihre Projekte nach ihren spezifischen Anforderungen anzupassen.

Entfernung des Console Kernel:

In den vorherigen Versionen von Laravel war der Console Kernel eine zentrale Stelle für die Registrierung von Konsolenbefehlen. Diese Struktur ermöglichte es den Entwicklern, kundenspezifische Befehle zu definieren, die sie dann über die Kommandozeile ausführen konnten. In Laravel 11 wird diese Struktur jedoch überdacht und der Console Kernel wird entfernt. Stattdessen können Konsolenbefehle nun direkt in der Datei routes/console.php definiert werden.

Hier ein Beispiel für die Definition eines Konsolenbefehls in Laravel 11:

use Illuminate\Foundation\Console\ClosureCommand;

Artisan::command('report:generate', function (ClosureCommand $command) {
    $command->describe('Generates a report');

    // Logik zur Berichtserstellung

})->describe('Generate a report');

Durch diese Änderung wird die Organisation von Konsolenbefehlen vereinfacht und die Barriere für das Erstellen und Verwalten von Befehlen verringert. Dies ist besonders nützlich für Entwickler, die häufig kundenspezifische Befehle verwenden, und bietet eine direktere, weniger verschachtelte Methode zur Arbeit mit der Konsole.

Benannte Argumente und PHP 8.2:

Laravel 11 nimmt die frischen Winds of Change mit und umarmt die neuesten Fortschritte in der PHP-Sprache durch die Unterstützung von PHP 8.2. Diese neueste Version von PHP bringt einige spannende neue Funktionen und Verbesserungen mit sich, und Laravel 11 ist bereit, diese zu nutzen.

Ein spannendes Feature, das mit PHP 8 eingeführt wurde, sind die benannten Argumente. Diese ermöglichen es Entwicklern, Argumente für Funktionen und Methoden durch ihren Namen anstatt durch ihre Position anzugeben. Dies kann den Code deutlich klarer und verständlicher machen, insbesondere in Szenarien, in denen Funktionen viele optionale Argumente haben.

// Ohne benannte Argumente
return view('view.name', [], [], [], []);

// Mit benannten Argumenten
return view('view.name', cookies: [], headers: [], locale: [], data: []);

Es wurde angedeutet, dass Laravel 11 eine Umbenennung der benannten Argumente einführen könnte, um den Code zu verbessern. Während die genauen Details noch nicht bekannt sind, könnte diese Änderung die Verwendung von benannten Argumenten in Laravel weiter vereinfachen und den Code noch lesbarer machen.

Darüber hinaus ist die Mindestanforderung von PHP 8.2 für Laravel 11 ein klares Zeichen für das Engagement des Frameworks, die neuesten Technologien und Best Practices der PHP-Entwicklung zu nutzen. Durch die Unterstützung von PHP 8.2 können Entwickler die neuesten Sprachfunktionen und Verbesserungen nutzen, um effizienteren, sichereren und besser lesbaren Code zu schreiben.

Fazit:

Die Reise durch die bevorstehenden Neuerungen in Laravel 11 zeigt, dass die Entwickler hinter diesem beliebten PHP-Framework fest entschlossen sind, die Entwicklererfahrung stetig zu verbessern. Die vorgestellten Änderungen sind ein klares Zeichen dafür, dass Laravel sich weiterentwickelt, um den modernen Anforderungen der Webentwicklung gerecht zu werden.

Die Vereinfachung der Verzeichnisstruktur, die Verbesserung der Model Casts, die schlankeren Standardmigrationen und die Überarbeitung der Routenverwaltung sind nur einige der vielen Verbesserungen, die Laravel 11 zu bieten hat. Diese Änderungen werden sicherlich die tägliche Arbeit der Entwickler erleichtern und die Effizienz und Produktivität steigern.

Die Einführung von benannten Argumenten und die Unterstützung für PHP 8.2 sind spannende Entwicklungen, die zeigen, dass Laravel am Puls der Zeit bleibt und die neuesten Fortschritte in der PHP-Technologie umarmt. Mit diesen neuen Funktionen können Entwickler nun klareren und besser lesbaren Code schreiben, was letztendlich zu besseren Webanwendungen führen wird.

Die Entfernung von einigen alten Strukturen wie dem Http/Kernel und dem Console Kernel zeigt auch eine Bewegung in Richtung einer schlankeren, effizienteren und leichter zu navigierenden Codebasis. Dies sind willkommene Änderungen, die sowohl Neueinsteigern als auch erfahrenen Laravel-Entwicklern zugutekommen werden.

Zusammenfassend lässt sich sagen, dass Laravel 11 eine spannende Zukunft für die Laravel-Community verspricht. Die vorgestellten Änderungen sind ein positiver Schritt in Richtung eines moderneren, effizienteren und benutzerfreundlicheren Frameworks. Mit Laravel 11 können Entwickler sich auf ein verbessertes Entwicklererlebnis freuen, das das Erstellen von Webanwendungen einfacher und angenehmer macht. Es ist eine aufregende Zeit, ein Laravel-Entwickler zu sein, und wir freuen uns darauf, zu sehen, wie diese Änderungen die Laravel-Community weiter voranbringen werden.