Laravel è stato per molti anni uno dei framework PHP più popolari. Elegante, scalabile, è diventato uno dei framework de facto per sviluppatori e aziende che lavorano con PHP. Laravel 9 sta arrivando con un carico di nuove caratteristiche.

In passato i nuovi rilasci di Laravel avvenivano ogni sei mesi, generando una gran quantità di domande, severi commenti e confusione sul nuovo processo di rilascio. Ora il framework è passato a un ciclo di rilascio di 12 mesi per le versioni principali: Laravel 9 sarà rilasciato a gennaio 2022.

In questo articolo vediamo le caratteristiche chiave di Laravel 9. Oltre a questo, vi spiegheremo come passare a Laravel 9 e iniziare a sviluppare applicazioni web.

Cos’È Laravel?

Laravel è un framework open-source per applicazioni web PHP noto per la sua sintassi elegante. È un framework MVC per costruire applicazioni web sia semplici che complesse con il linguaggio di programmazione PHP, e segue rigorosamente il modello architettonico MVC (model-view-controller).

Se non avete mai usato Laravel, potete leggere il nostro articolo su cos’è Laravel e dare un’occhiata alla nostra lista di eccellenti tutorial.

Caratteristiche Principali di Laravel

Se siete ancora principianti con Laravel, abbiamo selezionato alcune delle migliori caratteristiche del framework che vi permetteranno di comprenderlo meglio.

Caratteristiche di Laravel rappresentate dentro delle bolle.
Caratteristiche di Laravel. (Fonte dell’immagine: Moon Technolabs)

ORM Eloquent

L’object-relational mapper (ORM) per Laravel si chiama Eloquent, ed è una delle migliori caratteristiche di Laravel perché permette una perfetta interazione con il modello di dati e il database scelto.

Con Eloquent, Laravel astrae ogni ostacolo che comporta l’interazione e la scrittura di complesse query SQL per accedere ai dati dal vostro database.

CLI Artisan

La CLI Artisan, o linea di comando, è un altro aspetto vitale di Laravel. Con essa potete creare o modificare qualsiasi parte di Laravel dalla linea di comando senza dover navigare attraverso cartelle e file.

Con Artisan, potete anche interagire con il vostro database direttamente dalla vostra linea di comando usando Laravel Tinker, e tutto senza installare un client di database.

Architettura MVC

La natura architettonica MVC di Laravel rende il linguaggio facilmente riconoscibile e adattabile perché segue un modello di sviluppo web comune, ma applicando miglioramenti continui e significativi.

Laravel vi obbligherà a imparare e capire il modello architettonico MVC, che è popolare e usato in quasi tutti i framework, come AdonisJS da JavaScript e ASP.NET MVC da C#.

Paginazione Automatica

Se vi è capitato di litigare con la paginazione nelle vostre applicazioni, comprenderete il valore di avere una paginazione ordinata da un framework integrato.

Laravel risolve il problema della paginazione grazie a una funzione di paginazione automatica fuori dagli schemi. Questa è una delle sue caratteristiche più apprezzate, e vi evita di dover risolvere da soli il grattacapo della paginazione.

Sicurezza

Prima di scegliere una qualsiasi applicazione web, è essenziale analizzarne le misure di sicurezza: una mancanza di attenzione in questo senso può portare alla perdita di risorse o pregiudicare il funzionamento del vostro sito o prodotto.

Laravel è dotato di molte misure di sicurezza grazie alla sua aderenza ai principi di sicurezza OWASP. Dalla cross-site request forgery (CSRF) alla SQL injection, Laravel ha una soluzione integrata per tutto.

Cosa Aspettarsi da Laravel 9

Inizialmente, il rilascio di Laravel 9 era programmato per settembre 2021, ma poi è stato posticipato a gennaio 2022: si tratta quindi del primo rilascio con supporto a lungo termine (LTS) introdotto dopo il ciclo di rilascio di 12 mesi. Questo ritardo si deve a molte ragioni, che includono ma non si limitano alle seguenti:

  1. Laravel si serve di molti progetti discussi all’interno della sua community e di circa nove librerie Symfony. Tuttavia, Symfony sta pianificando il rilascio della versione 6.0 entro novembre 2021. Il ritardo permetterà al team di Laravel di incorporare questa nuova versione di Symfony come parte di Laravel 9.
  2. Il ritardo permetterà al team di monitorare per due mesi il modo in cui Laravel interagisce con la nuova versione di Symfony. Dà loro anche spazio per fare qualsiasi cambiamento importante o correggere bug.
  3. Infine, posticipare il rilascio di Laravel 9 posiziona meglio il team Laravel per i rilasci futuri annuali. Darà al team due mesi di tempo supplementare dopo i rilasci di Symfony.

Ecco perché, in realtà, il ritardo del rilascio vale l’attesa.

Nuove Caratteristiche in Laravel 9

Ora esploriamo la lista delle caratteristiche e dei miglioramenti che possiamo aspettarci nella prossima major release di Laravel.

Requisito Minimo di PHP

La prima e più importante: Laravel 9 richiede PHP 8 e PHPUnit 8 per i test. Questo perché Laravel 9 userà il più recente Symfony v6.0, che si basa su PHP 8.

PHP 8 include miglioramenti e caratteristiche significative, dalla compilazione JIT alla promozione delle proprietà del costruttore. Potete esplorare i diversi benchmark delle versioni di PHP e imparare a passare all’ultimo PHP 8 leggendo il nostro blog.

Migrazione di Stub Anonimi

Laravel viene impostato per rendere la migrazione anonima dello stub il comportamento predefinito quando si esegue il popolare comando di migrazione:

php artisan make:migration

La funzione di migrazione stub anonima è stata rilasciata per la prima volta in Laravel 8.37 per risolvere questo problema di Github. Il problema è che migrazioni multiple con lo stesso nome di classe possono causare problemi quando si cerca di ricreare il database da zero. La nuova funzione di migrazione stub elimina le collisioni dei nomi delle classi di migrazione.

A partire da Laravel 8.37, il framework supporta i file di migrazione di classi anonime; in Laravel 9 questo diventerà il comportamento predefinito.

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('people', function (Blueprint $table)
        {
            $table->string('first_name')->nullable();
        });
    }
};

Nuova Interfaccia del Costruttore di Query

Con il nuovo Laravel 9, il type hinting è molto affidabile per il refactoring, l’analisi statica e il completamento del codice nei loro IDE. Questo è dovuto alla mancanza di interfaccia condivisa o di ereditarietà tra Query\Builder, Eloquent\Builder e Eloquent\Relation. Tuttavia, con Laravel 9, gli sviluppatori possono approfittare della nuova interfaccia del costruttore di query per il type hinting, il refactoring e l’analisi statica.

<?php

return Model::query()
    ->whereNotExists(function($query) {
        // $query is a Query\Builder
    })
    ->whereHas('relation', function($query) {
        // $query is an Eloquent\Builder
    })
    ->with('relation', function($query) {
        // $query is an Eloquent\Relation
    });

Questa versione ha aggiunto la nuova Illuminate\Contracts\Database\QueryBuilder interface, così come il tratto Illuminate\Database\Eloquent\Concerns\DecoratesQueryBuilder che implementa l’interfaccia al posto del metodo __call .

PHP 8 Funzioni di Stringa

Poiché Laravel 9 si rivolge a PHP 8, Laravel ha fatto un merge per questa Pull Request, suggerendo di usare le più recenti funzioni di stringa di PHP 8.

Queste funzioni includono l’uso di str_contains(), str_starts_with(), e str_ends_with()

all’interno della classe \Illuminate\Support\Str.

Le caratteristiche e i miglioramenti di Laravel 9 che abbiamo elencato fin qui sono solo un assaggio di quello che verrà. Vedremo sicuramente un sacco di correzioni di bug, nuove caratteristiche e, naturalmente, un sacco cambiamenti.

Come Installare Laravel 9

Se volete iniziare a familiarizzare con Laravel 9 per scopi di sviluppo e test, potete installarlo ed eseguirlo sulla vostra macchina locale.

Laravel 9 supporta la versione 8 di PHP, quindi se avete intenzione di testarlo, controllate la vostra versione di PHP o iniziate una nuova installazione.

Potete scoprire maggiori dettagli sul rilascio tramite Packagist.

Per installare Laravel 9 usando composer, eseguite quanto segue:

composer create-project --prefer-dist laravel/laravel laravel-9-dev dev-develop

Il comando qui sopra creerà un nuovo progetto Laravel con il nome di progetto laravel-9-dev, e userà l’ultimo Laravel 9, che, come sappiamo, è ancora in fase di sviluppo (quindi dev-develop).

Il secondo metodo è quello di usare la CLI globale di Laravel per creare un nuovo progetto Laravel e scegliere di creare il nuovo progetto dal ramo dev.

Inserite il seguente comando per creare un nuovo progetto Laravel 9:

laravel new laravel-9-dev --dev

Ora che avete installato Laravel 9, potete entrare nella nuova directory (laravel-dev) ed eseguire il comando artisan per verificare la versione:

cd laravel-9-dev
php artisan --version

A questo punto dovreste vedere la versione di sviluppo di Laravel 9. Voilà!

Sommario

Laravel è un valido framework PHP che sta prendendo sempre più piede tra chi si occupa di sviluppo. La sua prossima versione principale (Laravel 9) è la prima a seguire un ciclo di rilascio di 12 mesi, e possiamo già vedere che introdurrà nuove “succose” caratteristiche.

Questa è la lista completa delle nuove caratteristiche? Probabilmente no, perché il team di Laravel annuncerà nuove funzionalità prima della data di rilascio. Mettete allora questo articolo tra i preferiti, perché le analizzeremo nei prossimi aggiornamenti.

Ora è il vostro turno! Cosa non vedete l’ora di fare con Laravel 9? Fatecelo sapere nella sezione commenti!

Solomon Eseme

I am a Software Engineer and Content Creator who is geared toward building high-performing and innovative products following best practices and industry standards. I also love writing about it at Masteringbackend.com. Follow me on Twitter, LinkedIn, and About Me