Nieuwe features in Laravel 11
- Update 11
- Release datum
- Updates & Support
- PHP 8.2+
- Kernwoord in update 11: Simplificeren
- Cronjobs & Kernel
- Http & Kernel
- Configuratie verwijderd?
- API verwijderd?
Update 11
Release date
Laravel 11 wordt op dinsdag 12 maart uitgebracht. Eerst waren de geruchten dat dit 6 februari 2024 zou zijn tijdens Laracon EU, maar helaas ging dat niet door.
Updates & Support
Laravel 11 krijgt updates tot augustus 2025 en er zullen security fixes worden uitgevoerd tot februari 2026.
PHP 8.2+
Laravel 11 ondersteund alleen PHP 8.2 en hoger. Support vervalt voor PHP versies ouder dan 8.2.
Simplificeren
Toen update 11 aangekondigd werd leek het er vooral op dat er veel verbeteringen gemaakt werden voor nieuwe Laravel projecten en ontwikkelaars. Veel bestanden die je meestal niet hoeft te wijzigen zijn verwijderd. Bijvoorbeeld het Kernel-bestand in App/Console
en App/Http
. Hele mappen worden niet meer meegeleverd bij nieuwe installaties, wat voorheen we het geval was.
Een voorbeeld hiervan is de App/Http/Middleware/
-map. Veel features worden ‘opt-in’, wat betekent dat je ze zelf moet installeren als je ze wilt gebruiken. Voorbeelden van bestanden die we missen zijn de API-routes, Middleware, Providers en Broadcasting.
Nieuwe locatie voor Cronjobs & Console Kernel
Er is een grotere structuurwijzing gemaakt voor het aanmaken van een “Command Schedule”. Tot en met Laravel 10 plaatste je deze planning in App/Commands/Kernel.php
, maar naar verluid wordt dit bestand verwijderd. In Laravel 11 plaats je deze bestanden in routes/console.php
.
Is dit een breaking change zul je vragen? Nee. Upgraden blijft zoals het er nu uitziet gewoon heel eenvoudig.
Config bestanden zijn verleden tijd?
Naar verluid zou de config
-map ook ontbreken. Hierover ontstond ophef. Het framework wordt steeds minder discoverable, vond men. Daar zijn wij het wel mee eens. Uiteindelijk is ervoor gekozen de configuratiebestanden standaard mee te leveren, maar ze zijn wel opgeschoond van enige onnodige variabelen.
Nieuwe locatie voor Middleware definities en Http Kernel
Naast het eerdergenoemde Kernel-bestand van Commands
zal ook het Kernel-bestand van Http worden verwijderd. Het is nog niet helemaal duidelijk hoe dit gaat werken, hoogstwaarschijnlijk moeten Middlewares nu gedefinieerd worden in bootstrap/app.php
. We hebben een blog gevonden bij Dev.to waar meer over Middleware in Laravel 11 wordt verteld.
Het Kernel-bestand van Http
verdwijnt ook, naast het eerder genoemde Kernel-bestand van Commands
. Het is nog niet zeker hoe dit zal werken, maar waarschijnlijk moeten Middlewares nu in bootstrap/app.php
worden gedefinieerd of Laravel gaat de middleware zelf inladen op basis van een definitie in het middleware-bestand zelf. We houden het in de gaten.
Maar is dit dan wel een breaking change? Nee, ook niet.
Waar zijn Laravel API routes gebleven?
In een nieuwe installatie van Laravel 11 is het bestand routes/api.php
niet meer aanwezig. Dit betekent echter niet dat API-routes zijn afgeschaft. Je kunt ze namelijk toevoegen met het commando php artisan install:api
, waarna het bestand weer verschijnt. Waarom deze verandering? Omdat API’s een speciale validatie vereisen via Laravel Sanctum. Zo voorkom je dat elke applicatie standaard volledige API functionaliteit heeft, terwijl de meeste applicaties daar geen gebruik van maken.
Laravel API-only
Laravel 11 is ‘out-of-the-box’ een webapplicatie. Er zijn zoals gezegd geen API-routes beschikbaar. Hoewel het mogelijk is om een API aan de bestaande webapplicatie toe te voegen, is er geen optie om de applicatie als een API-only te laten functioneren. Wil je dat wel, dan is het noodzakelijk om handmatig alle front-end componenten te verwijderen. Er waren verwachtingen dat Laracon EU meer duidelijkheid zou bieden over deze vorm, echter, de focus lag enkel op de bespreking van de API-functionaliteiten die eerder zijn vermeld.
Laravel ecosysteem
Nieuw in het Laravel eco-systeem:
- Laravel Reverb
- Laravel Volt
- Laravel Folio
Conclusie
Er wordt veel opgeschoond voor nieuwe applicaties. Bestaande applicaties kunnen gewoon upgraden. Laravel 9 naar Laravel 10 was al heel eenvoudig. Deze trend is doorgezet bij Laravel 11. In theorie zou je dus een Laravel 9 applicatie eenvoudig moeten kunnen upgraden naar Laravel 11. Dit geldt overigens alleen als je ook up-to-date bent gebleven met je PHP versie…