Il framework php Laravel arriva alla versione 9

Laravel è uno dei framework PHP più diffusi, è adattabile, scalabile, versatile ed è diventato uno standard de facto per sviluppatori e aziende che lavorano con PHP.
Laravel è giunto alla versione 9, con una serie di nuove funzionalità, tra cui una versione minima di PHP v8.0, raggruppamento dei controller per il routing, motore di database Laravel Scout, integrazione di Symfony Mailer, Flysystem 3.x.

Inizialmente previsto per il rilascio entro settembre 2021, Laravel 9 è stato spostato a febbraio 2022, diventando così la prima versione di supporto a lungo termine (LTS) ad essere introdotta dopo il ciclo di rilascio di 12 mesi.

Mentre le versioni precedenti di Laravel avvenivano ogni sei mesi, il nuovo ciclo di rilascio sarà ogni 12 mesi, il che assicura la sincronizzazione del rilascio con Symfony — che Laravel usa dietro le quinte — e consente al team di sviluppo più tempo per correggere eventuali bug che si verificano quando si interagisce con il framework Symfony.

Per tutte le versioni di Laravel, le correzioni di bug sono fornite per 18 mesi e le correzioni di sicurezza sono fornite per 2 anni. Per tutte le librerie aggiuntive, incluso Lumen, solo l’ultima versione principale riceve correzioni di bug.

Questo lo schema dei rilasci:

VersionePHP (*)RilascioBug Fixes fino alSecurity Fixes fino al
6 (LTS)7.2 – 8.03 Settembre 201925 Gennaio 20226 Settembre 2022
77.2 – 8.03 Marzo 20206 Ottobre 20203 Marzo 2021
87.3 – 8.18 Settembre 202026 Luglio 202224 Gennaio 2023
98.0 – 8.18 Febbraio 20228 Agosto 20238 Febbraio 2024
108.17 Febbraio 20237 Agosto 20247 Febbraio 2025

Alcune novità:

PHP 8
Laravel 9.x richiede una versione PHP minima di 8.0.

Symfony Mailer
Nelle precedenti release Laravel utilizzava la libreria Swift Mailer, adesso viene sostituita con Symfony Mailer un API potente e di semplice utilizzo.

Migrazione di Stub Anonimi

La funzionalità di migrazione degli stub anonimi è stata introdotta per la prima volta in Laravel 8.37 per risolvere il problema di Github. Il problema si presenta con più migrazioni nello stesso nome di classe possono causare problemi quando si tenta di ricreare l’intero database. La funzionalità di migrazione dello stub elimina le collisioni dei nomi delle classi di migrazione.

Laravel Scout

Se l’applicazione che si vuole sviluppare deve accedere a database di piccole e medie dimensioni o ha un carico di lavoro leggero, ora si può utilizzare il motore “database” di Scout invece di un servizio di ricerca dedicato come Algolia o MeiliSearch.

Eloquent Accessors / Mutators migliorati

Nelle versioni precedenti per definire in Eloquent accessors and mutators l’unico modo era quello di definire metodi prefissi sul modello in questo modo:

public function getNameAttribute($value)
{
    return strtoupper($value);
}
 
public function setNameAttribute($value)
{
    $this->attributes['name'] = $value;
}


In questa versione invece si utilizza un unico metodo senza prefisso:

use Illuminate\Database\Eloquent\Casts\Attribute;
 
public function name(): Attribute
{
    return new Attribute(
        get: fn ($value) => strtoupper($value),
        set: fn ($value) => $value,
    );
}

Scopri di più su Laravel 9.x

Queste sono solo alcune delle nuove funzionalità di Laravel 9 e per vedere un elenco completo controlla le note di rilascio di Laravel 9 e la guida all’aggiornamento dalla versione 8.x alla 9.x