Laravel ist seit vielen Jahren eines der beliebtesten PHP-Frameworks. Es ist elegant, skalierbar und hat sich zu einem der De-facto-Frameworks für Entwickler und Unternehmen entwickelt, die mit PHP arbeiten. Jetzt ist Laravel 9 mit einer Menge neuer Funktionen verfügbar.

In der Vergangenheit wurden neue Versionen alle sechs Monate veröffentlicht, was zu einer Vielzahl von Fragen, harschen Kommentaren und Verwirrung über den neuen Release-Prozess von Laravel führte. Mit der Veröffentlichung von Laravel 9 ist das Framework zu einem 12-monatigen Hauptversionszyklus übergegangen und wird im Januar 2022 veröffentlicht.

Dieser Artikel befasst sich mit den Hauptmerkmalen von Laravel 9. Darüber hinaus wird erläutert, wie man ein Upgrade auf Laravel 9 durchführt und mit der Entwicklung von Webanwendungen beginnt.

Was ist Laravel?

Laravel ist ein Open Source PHP Web Application Framework, das für seine elegante Syntax bekannt ist. Es ist ein MVC-Framework zum Erstellen von einfachen bis komplexen Webanwendungen mit der Programmiersprache PHP und folgt strikt dem MVC (Model-View-Controller) Architekturmuster.

Wenn du Laravel noch nicht benutzt hast, kannst du hier nachlesen, was Laravel ist und dir unsere Liste mit exzellenten Laravel-Tutorials ansehen, um loszulegen.

Hauptmerkmale von Laravel

Wenn du neu in diesem Framework bist, haben wir einige der besten Laravel-Features kuratiert, um dir ein besseres Verständnis zu vermitteln.

Laravel Features in Luftblasen. (Bildquelle: Moon Technolabs)
Laravel Features in Luftblasen. (Bildquelle: Moon Technolabs)

Eloquent ORM

Der objektrelationale Mapper (ORM) für Laravel heißt Eloquent und es ist eines der besten Features von Laravel, da es eine nahtlose Interaktion mit dem Datenmodell und der Datenbank der Wahl ermöglicht.

Mit Eloquent abstrahiert Laravel jede Hürde, die mit der Interaktion und dem Schreiben komplexer SQL-Abfragen verbunden ist, um auf Daten aus deiner Datenbank zuzugreifen.

Artisan CLI

Die Artisan CLI, oder Kommandozeile, ist ein weiterer wichtiger Aspekt von Laravel. Mit ihr kannst du jeden Teil von Laravel von der Kommandozeile aus erstellen oder verändern, ohne durch Ordner und Dateien navigieren zu müssen.

Mit Artisan kannst du sogar direkt von der Kommandozeile aus mit deiner Datenbank interagieren, indem du Laravel Tinker benutzt – und das alles, ohne einen Datenbank-Client installieren zu müssen.

MVC-Architektur

Die MVC-Architektur von Laravel macht die Sprache beziehbar und anpassungsfähig, da es einem weit verbreiteten Webentwicklungsmuster mit laufenden, bedeutenden Verbesserungen folgt.

Laravel wird dich dazu zwingen, das MVC-Architekturmuster zu lernen und zu verstehen, das in fast allen Frameworks, wie AdonisJS von JavaScript und ASP.NET MVC von C#, beliebt ist und verwendet wird.

Automatische Paginierung

Wenn du jemals mit der Paginierung in deinen Anwendungen zu kämpfen hattest, wirst du den Wert verstehen, den es hat, wenn die Paginierung von einem eingebauten Framework erledigt wird.

Laravel löst das Problem der Paginierung durch eine automatische Paginierung, die direkt aus der Box kommt. Dieses Feature ist eines der bekanntesten und es eliminiert die Arbeit, die damit verbunden ist, das Rätsel der Paginierung selbst zu lösen.

Sicherheit

Es ist wichtig, dass du die Sicherheitsmaßnahmen jeder Webanwendung, die du in Erwägung ziehst, genau unter die Lupe nimmst, da ein Mangel an Sorgfalt zum Verlust von Geldern oder sogar zum Hijacking deiner Webseite oder deines Produkts führen kann.

Laravel verfügt über eine Vielzahl von Sicherheitsmaßnahmen, da es die OWASP-Sicherheitsrichtlinien befolgt. Von Cross-Site Request Forgery (CSRF) bis hin zu SQL-Injection, Laravel hat für alles eine eingebaute Lösung.

Was du mit Laravel 9 erwarten kannst

Geplant für die Veröffentlichung im September 2021, wurde Laravel 9 auf Januar 2022 verschoben, was es zum ersten Long-Term Support (LTS) Release macht, das nach dem 12-monatigen Release-Zyklus eingeführt wird. Diese Verzögerung resultiert aus vielen Gründen, zu denen unter anderem die folgenden gehören:

  1. Laravel nutzt eine Vielzahl von Community-getriebenen Projekten und etwa neun Symfony-Bibliotheken. Symfony plant jedoch die Veröffentlichung der Version 6.0 bis November 2021. Die Verzögerung wird es dem Laravel-Team ermöglichen, diese neue Version von Symfony als Teil von Laravel 9 zu integrieren.
  2. Die Verzögerung gibt dem Team die Zeit, zwei Monate lang zu beobachten, wie Laravel mit der neuen Version von Symfony interagiert. Es gibt ihnen auch Raum, um alle Änderungen und Bugs zu korrigieren.
  3. Letztendlich positioniert die Verzögerung der Veröffentlichung von Laravel 9 das Laravel-Team besser für zukünftige jährliche Veröffentlichungen. Es gibt dem Team zwei Monate zusätzliche Anlaufzeit nach der Veröffentlichung von Symfony.

Aus diesen Gründen kannst du sehen, dass sich die Verzögerung der Veröffentlichung gelohnt hat.

Neue Features in Laravel 9

Schauen wir uns nun die Liste der Features und Verbesserungen an, die du in der kommenden Hauptversion von Laravel erwarten solltest.

Minimale PHP-Anforderung

Zuerst und am wichtigsten ist, dass Laravel 9 das neueste PHP 8 und PHPUnit 8 zum Testen benötigt. Das liegt daran, dass Laravel 9 das neueste Symfony v6.0 verwenden wird, welches ebenfalls PHP 8 benötigt.

PHP 8 kommt mit signifikanten Verbesserungen und Features, von der JIT-Kompilierung bis zur Förderung von Konstruktoreigenschaften. Du kannst hier auf unserem Blog die verschiedenen PHP-Versions-Benchmarks erkunden und erfahren, wie du auf das neueste PHP 8 upgraden kannst.

Anonyme Stub-Migration

Laravel stellt die anonyme Stub-Migration als Standardverhalten ein, wenn du den beliebten Migrationsbefehl ausführst:

php artisan make:migration

Das Feature der anonymen Stub-Migration wurde erstmals in Laravel 8.37 veröffentlicht, um dieses Github-Problem zu lösen. Das Problem ist, dass mehrere Migrationen mit demselben Klassennamen zu Problemen führen können, wenn man versucht, die Datenbank von Grund auf neu zu erstellen. Das neue Stub-Migrations-Feature eliminiert Kollisionen von Migrationsklassennamen.

Ab Laravel 8.37 unterstützt das Framework nun anonyme Klassenmigrationsdateien, und in Laravel 9 wird es das Standardverhalten sein.

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('people', function (Blueprint $table)
        {
            $table->string('first_name')->nullable();
        });
    }
};

Neues Query Builder Interface

Mit dem neuen Laravel 9 ist Type Hinting sehr zuverlässig für Refactoring, statische Analyse und Code Completion in ihren IDEs. Das liegt daran, dass es keine gemeinsame Schnittstelle oder Vererbung zwischen Query\Builder, Eloquent\Builder und Eloquent\Relation gibt. Dennoch können Entwickler mit Laravel 9 nun die neue Query-Builder-Schnittstelle für Type Hinting, Refactoring und statische Analyse nutzen.

<?php

return Model::query()
	->whereNotExists(function($query) {
		// $query is a Query\Builder
	})
	->whereHas('relation', function($query) {
		// $query is an Eloquent\Builder
	})
	->with('relation', function($query) {
		// $query is an Eloquent\Relation
	});

Diese Version fügte das neueInterface Illuminate\Contracts\Database\QueryBuilder hinzu, sowie den TraitIlluminate\Database\Eloquent\Concerns\DecoratesQueryBuilder der das Interface anstelle der Methode __call magic implementiert.

PHP 8 String-Funktionen

Da Laravel 9 auf PHP 8 abzielt, hat Laravel diesen PR zusammengeführt und schlägt vor, die neuesten PHP 8 String-Funktionen zu verwenden.

Diese Funktionen beinhalten die Verwendung von str_contains(), str_starts_with(), und str_ends_with() intern in der Klasse \Illuminate\Support\Str .

Die oben aufgeführten Features und Verbesserungen von Laravel 9 sind ein kleiner Vorgeschmack auf das, was noch kommen wird. Es wird auf jeden Fall viele Bugfixes, Features und natürlich auch viele Änderungen mit sich bringen.

Wie man Laravel 9 installiert

Wenn du mit Laravel 9 zu Entwicklungs- und Testzwecken spielen möchtest, kannst du es ganz einfach auf deinem lokalen Rechner installieren und ausführen.

Laravel 9 unterstützt PHP Version 8. Wenn du es also testen möchtest, solltest du deine PHP Version überprüfen oder eine Neuinstallation durchführen.

Du kannst mehr Details über das Release via Packagist entdecken.

Um Laravel 9 mit Composer zu installieren, führe Folgendes aus:

composer create-project --prefer-dist laravel/laravel laravel-9-dev dev-develop

Der obige Befehl wird ein neues Laravel-Projekt mit dem Projektnamen laravel-9-dev, erstellen, wobei das neueste Laravel 9 verwendet wird, das sich, wie wir wissen, noch in der Entwicklung befindet (daher dev-develop).

Die zweite Methode ist, die Laravel global CLI zu verwenden, um ein neues Laravel Projekt zu erstellen und zu wählen, dass dein neues Projekt aus dem dev-Zweig erstellt wird.

Gib den folgenden Befehl ein, um ein neues Laravel 9 Projekt zu erstellen:

laravel new laravel-9-dev --dev

Nachdem du nun Laravel 9 installiert hast, kannst du in das neue Verzeichnis (laravel-dev) gehen und den artisan-Befehl ausführen, um die Version zu überprüfen:

cd laravel-9-dev
php artisan --version

Es sollte dir die Entwicklungsversion von Laravel 9 anzeigen. Voilà!

Zusammenfassung

Laravel ist ein überzeugendes PHP-Framework, das unter Entwicklern immer mehr an Aufmerksamkeit gewinnt. Das kommende Major-Release (Laravel 9) ist das erste nach einem 12-monatigen Release-Zyklus und wir können bereits sehen, dass es „saftige“ neue Features einführen wird.

Wahrscheinlich nicht, denn das Laravel-Team wird wahrscheinlich noch vor dem Release-Datum neue Features ankündigen. Daher solltest du dir diesen Beitrag vormerken, denn wir werden sie in zukünftigen Updates abdecken.

Jetzt bist du an der Reihe! Worauf freust du dich am meisten bei Laravel 9? Lass es uns in den Kommentaren wissen!

Solomon Eseme

I am a Software Engineer and Content Creator who is geared toward building high-performing and innovative products following best practices and industry standards. I also love writing about it at Masteringbackend.com. Follow me on Twitter, LinkedIn, and About Me