Laravel 11
Som sig bör här på vårkanten så släpps en ny version av Laravel – nu är vi uppe i version 11! Dags att hugga tag i ändringarna och planera kommande uppdateringar.
Nyheter i Laravel 11
Största fokuset i Laravel 11 har handlat om att skala ner, förenkla och städa upp. Borta är filer som sällan behövs på mindre projekt så som t.ex. API- och channel routes (/routes/api.php
och /routes/channels.php
). Dessa kan dock fortfarande publiceras vid behov.
Service-providers har förenklats och numera sköts det mesta direkt i AppServiceProvider.php
och /bootstrap/app.php
.
Vidare så har de dåligt namngivna Console/Kernel.php
och Http/Kernel.php
helt plockats bort. Schemaläggning och annat som tidigare hanterades i Console/Kernel.php
kan man nu göra direkt i routes/console.php
genom nya Schedule-fasaden:
1use Illuminate\Support\Facades\Schedule;23Schedule::call(function () {4 DB::table('recent_users')->delete();5})->daily();
1use Illuminate\Support\Facades\Schedule;23Schedule::call(function () {4 DB::table('recent_users')->delete();5})->daily();
Middlewares och annat som man registrerade i Http/Kernel.php
kan nu istället hanteras direkt i /bootstrap/app.php
.
Dumpable
Många externa paket och delar av Laravel självt har sedan tidigare använt sig av ->dump()
och ->dd()
-metoder, men nu blir det en del av själva ramverket för att förenkla och standardisera metoden. Nu kan man även själv implementera den för sina egna klasser utan att behöva skriva en custom-lösning:
1use Illuminate\Support\Traits\Dumpable;23class Book4{5 use Dumpable67 // ...8}
1use Illuminate\Support\Traits\Dumpable;23class Book4{5 use Dumpable67 // ...8}
PHP 8.2
PHP 8.1 är ute – Laravel kräver nu PHP 8.2 som minimum.
2014_10_12_000000_create_users_table.php
Länge har de gamla migrations för users
-, password_reset_tokens
-, failed_jobs
- och personal_access_tokens
-tabellerna följt med. Vilkas namnkan har förvirrat en del nya utvecklare ("Varför har jag en migration ifrån 2014?") och sett allmänt störande ut (om man nu bryr sig om det).
Nu har har de tryckts ihop till färre filer med ett eget namngivningsformat (t.ex. 0001_01_01_000000_create_users_table.php
). Alltid nåt.
Under utvecklingen var tanken att även inte inkludera config-filerna utan att man istället kunder publicera dem vid behov – något som ändrades i sista sekund. Jag själv skulle uppskatta den ändringen dock.
Som vanligt finns en bra upgrade guide tillgänglig på laravel.com – rekommenderas starkt. Vidare så har flera skrivit betydligt mer omfattande kring ändringarna än vad jag har möjlighet till. bl.a:
–
P.S. Såg i min tidslinje att det är ganska exakt 10 år sedan jag skrev det första inlägget här på bloggen om Laravel (nåväl, Laravel Forge och Homestead handlade inlägget egentligen om – verktyg som jag använder än idag). Tiden går galet fort!