Als kürzlich veröffentlichte Version von Laravel, hat Laravel 10 viele spannende Neuerungen und Verbesserungen zu bieten. In diesem Artikel werden wir uns einige der wichtigsten neuen Funktionen und Verbesserungen von Laravel 10 ansehen.

Laravel 10 setzt die Verbesserungen fort, die in Laravel 9.x vorgenommen wurden, indem es Argument- und Rückgabetypen für alle Methoden des Anwendungsskeletts sowie alle Stub-Dateien einführt, die zum Generieren von Klassen im gesamten Framework verwendet werden. Zusätzlich wurde eine neue, entwicklerfreundliche Abstraktionsschicht zum Starten und Interagieren mit externen Prozessen eingeführt. Darüber hinaus wurde Laravel Pennant eingeführt, um einen einfachen Ansatz zur Verwaltung von „Feature-Flags“ einer Anwendung zu bieten.

Typisierung

Bei seiner ersten Veröffentlichung nutzte Laravel alle damals in PHP verfügbaren Type-Hinting-Funktionen. In den folgenden Jahren wurden PHP jedoch viele neue Funktionen hinzugefügt, darunter zusätzliche primitive Type-Hints, Return Types und das Feature Union Types zu deklarieren.

Laravel 10.x aktualisiert das Skeleton und alle vom Framework verwendeten Stubs von grund auf, um Argument- und Rückgabetypen in alle Methodensignaturen einzuführen. Darüber hinaus wurden überflüssige Type-Hints in „doc blocks“ gelöscht, was verwirrung bei IDEs verhindern wird. Man stelle sich vor, VSCode oder PhpStorm melden auf einmal eine Methode gäbe verschiedene Typen zurück, aber nicht als DNF sondern wirklich als 2 overrides (was ja an sich in PHP garnicht geht…). Das Fragezeichen wäre groß.

Diese Änderung ist vollständig abwärtskompatibel mit bestehenden Anwendungen. Daher funktionieren vorhandene Anwendungen, die diese Typhinweise nicht haben, weiterhin normal. 💜

Feature-Flag-Verwaltung mit Pennant

Mit Version 10 von Laravel, wird zudem ein neues Package namens „Pennant“ veröffentlicht. Es ermöglicht euch die einfache und einheitliche Definition von Feature-Flags, sowie die Prüfung ob der Benutzer über das entsprechende Feature verfügen kann.
Das Paket wurde ursprünglich von Tim MacDonald entwickelt 👍
Wer mag, kann sich bei Interesse gerne einmal die ausführliche Dokumentation zum Einrichten und Verwenden von Pennant in der offiziellen Laravel 10 Dokumentation ansehen 👀. Ich finde es höchst interessant.

Prozess-Interaktion

Dank Nuno Maduro und Taylor Ottwell gibt es nun eine wunderbare neue Abstraktionsschicht/Facade zur Interaktion mit Prozessen. Die neue Process Facade liefer statische Methoden zum Starten, Überwachen und Beenden von Prozessen aus eurer Laravelanwendung heraus. Bspw könnt ihr Docker Container anwerfen, Archivierungsjobs mit dafür vorgesehener Software triggern oder vieles mehr, die Möglichkeiten scheinen damit schier endlos zu sein. Na Gut, endlos ist extrem, aber die Möglichkeiten sind hierdurch gigantisch.

Und nicht nur, dass ihr Prozesse anwerfen könnt, es bietet auch out-of-the-box an, mehrere Parallele Prozesse in Pools zu starten. Schaut gerne in die Dokumentation. Auch dieses Feature finde ich höchst interessant.

Weitere Neuerungen

Weitere Neuerungen sind unter anderem ein optisches Facelift von Telescope und Horizon, sowie das Scaffolding von Pest-Test-Units beim Erstellen neuer Projekte mittels Laravel-CLI.
Richtig nett 💜 finde ich eine Neuerung in artisan. Ab Laravel 10.x benötigen die make:: Generator keine direkten Inputs aus der Befehlszeile, stattdessen werdet ihr per Prompt nach nötigen Angaben gefragt. Das ist schon eine vereinfachung, wenn man bspw nach mehreren Wochen nicht mehr so auf dem Schirm hat, welche Parameter denn nun ein make:controller oder make:component so akzeptiert oder gar benötigt.

Unter dem Strich kann man sagen, dass Laravel 10.x wieder eine geballte Ladung neuer und interessanter Features mit sich bringt. Wie vom Laravel Team gewohnt bietet es moderne, performante und vielseitige Werkzeuge mit denen Ihr eure Projekte auf solide Beine stellen könnt. 🙌.