Laravel har släppt den senaste versionen, Laravel 11, som inkluderar en rad spännande förbättringar och nya funktioner för utvecklare. Här är en översikt över vad som är nytt:
Laravel Reverb
Laravel Reverb är en ny förstaparts WebSocket-server för Laravel-applikationer som möjliggör realtidskommunikation mellan klient och server. Den är optimerad för hastighet och stödjer tusentals anslutningar på en enda server, med sömlös integrering för Laravel Forge och inbyggt stöd för Pulse för övervakning.
Ny slimmad struktur
Ett av målen med Laravel 11 har varit att slimma ner strukturen och minska ner antalet filer i en ny installation av Laravel. De delar av applikationen som tidigare styrts via Kernel har ny flyttat in i App/ServiceProvider. Bl.a har de nio Middleware som varit default sedan tidigare flyttat in i ramverket, vendor-mappen, istället.
Den största ändringen syns nog i config-mappen, eller rättare sagt, det syns INTE i config-mappen, för alla de filer som låg där innan är nu borta. Det går självklart att publicera de config-filer som du önskar att ändra värdena i. En nyhet är också att de värden du fyller i kommer att slås ihop med default-värdena, dvs du behöver bara ange de värden du vill ändra på. ENV-filen har också uppdaterats för att inkludera fler konfigurationsvärden.
När du startar en ny Laravel-app kommer den med några standardmigreringar från 2014 och 2019. Dessa kommer nu att levereras utan datum och flyttas till bara två filer.
Ny Once-metod
Laravel 11 inkluderar en ny hjälpfunktion som heter once som säkerställer att du alltid får samma värde oavsett hur många gånger du anropar en objektsmetod.
Förändringar i Routes
Som standard kommer det nu bara att finnas två route-filer, console.php och web.php. API-rutter blir nu valfria att generera genom php artisan install:api
APP_KEY Rotation
I äldre versioner av Laravel kunde en ändring av APP_KEY leda till korrupt data i databasen. Det går nu att förhindra i Laravel 11 genom att ange gamla nycklar via en APP_PREVIOUS_KEYS .env-variabel.
Console Kernel Borttagen
Console Kernel är borttaget, istället kan du definiera dina konsolkommandon direkt i routes/console.php.
Eager Load Limit
I Laravel 11 är det nu enklare att sätta en eager load limit vid laddning av modeller via en relation. Tidigare har detta varit möjligt via Eloquent Eager Limit men är nu alltså tillgängligt direkt via Laravel. Detta är något vi på Caesar använder ofta t.ex när vi vill ladda de tre senaste kreditutvärderingarna för ett företag i våra system.
Dessa är bara några av de många förbättringar och nya funktioner som Laravel 11 har att erbjuda.