Wat heeft Laravel 9 ons te bieden?
Het jaar is amper begonnen of we hebben alweer te maken met een belangrijke release: de grote, nieuwe versie van Laravel. Daar kijken we als developers altijd naar uit, want zo’n grote update biedt veel voordelen. Nieuwe gereedschappen om code te schrijven natuurlijk, maar vergeet ook de beveiligingsupdates niet. Laravel 9.0 biedt beveiligingsupdates tot februari 2024. Nu updaten dus voor ‘peace of mind’!

Verder zijn de technische vereisten aangescherpt. Zo moet je vanaf deze versie minimaal PHP 8 draaien. Dat is fijn, zeker als je gelijk PHP 8.1 pakt want daardoor is behalve je ontwikkelframework ook je ontwikkelomgeving weer helemaal up-to-date.
Voor de eindgebruiker zijn veel wijzigingen misschien onzichtbaar maar daarom zijn ze nog niet minder belangrijk. Wat zijn die grote veranderingen in Laravel 9.0?
Nieuwe mailmodule Symfony
Laravel heeft altijd gebruik gemaakt van de module ‘Swift Mailer’ maar die wordt niet langer onderhouden. Het Laravel team heeft daarom gekozen voor ‘Symfony Mailer’. Een prima keus want onderwater maakt Laravel al veel gebruik van andere Symfony modules. Alles sluit daardoor goed op elkaar aan. Als ontwikkelaar moet je misschien een kleine aanpassing doen, als gebruiker merk je er helemaal niets van.

Verbeterde Accessors / Mutators
In Laravel was het al mogelijk om op één plek data aan te passen voor ze de database in gaan en net als ze de database uit komen. Zodat je als je data wilt omvormen, je dit maar op één plek hoeft te doen en dit verder automatisch in heel je applicatie wordt gebruikt. Superhandig! In Laravel 9.0 hebben ze het makkelijker gemaakt om deze code te schrijven. Zo hoef je minder regels code te schrijven en ziet het er ook nog eens een stuk leesbaarder uit.
Enum ondersteuning
Dit is een functionaliteit die alleen beschikbaar is als je ook PHP 8.1 gebruikt. Ook dit is weer superhandig en kan bugs voorkomen. Een Enum is een manier om een datawaarde te standaardiseren in je applicatie. Stel je voor, in de database is een actieve gebruiker gemarkeerd met het nummer “1”. De “1” betekent dus “actief”. Als je in je code vervolgens de “1” zou moeten gebruiken is dit niet goed leesbaar. Het zegt niets.
Je kunt daar beter een Enum voor gebruiken. Simpel gezegd gebruik je dan in je code “Status::ACTIVE”, wat veel duidelijker is als je de code leest of schrijft. Je ziet direct wat het betekent. Die “1” doet er dan niet meer toe en is alleen bedoeld voor de database. Wat je nu in Laravel 9 kunt doen, is instellen dat een bepaald attribuut van een entiteit een Enum is. Bijv: het “status” attribuut van een gebruiker entiteit moet een “Status” Enum zijn. En Laravel handelt dit verder voor je af.
Ook kun je afdwingen dat een waarde in de URL een Enum moet zijn. Stel, je hebt de URL: “/set-user/status/{status}” dan kun je het zo instellen dat die waarde, “{status}” een echt geldige status moet zijn die voorkomt in de Enum. Anders krijg je een “404 – Niet gevonden” pagina.
Testcoverage
Het is nu makkelijker dan ooit om te zien hoeveel testcoverage je applicatie heeft. Zo kun je dus kijken of al je code wordt getest. Door `artisan test –coverage` uit te voeren krijg je per map te zien hoeveel procent er van de code getest wordt.
Ook is het mogelijk een minimum percentage mee te geven. Zo kun je bijvoorbeeld makkelijk afdwingen dat je applicatie altijd een minimum hoeveelheid aan tests nodig heeft, dit tijdens een code-review automatisch laten testen en vervolgens feedback geven aan de ontwikkelaar die code oplevert.
En zo zijn er nog veel meer nieuwe features toegevoegd om het leven van een ontwikkelaar te verbeteren. Voor een compleet overzicht kun je uiteraard terecht bij de officiële Laravel documentatie: https://laravel.com/docs/9.x/releases.