Apri il composer.json di un progetto che ti hanno lasciato in eredità e trovi scritto Laravel 10. L’applicazione gira, nessuno si lamenta, quindi sembra tutto a posto. Eppure quella versione non riceve più nemmeno le patch di sicurezza, e una vulnerabilità scoperta oggi resterebbe dov’è.

Con Laravel la prima domanda sensata riguarda la versione, molto prima dei controller. Se parti da zero la risposta è breve: Laravel 13, la versione attuale, supportata fino al 2028, il resto serve a capire cosa ottieni scegliendola, come si comincia e dove stanno le trappole.

Cos’è Laravel e come funziona

Laravel è un framework PHP per costruire applicazioni web, decide per te dove vivono controller, model e migration e ti consegna già pronti i servizi che quasi ogni applicazione finisce per riscrivere: autenticazione, code, cache, test. È un po’ come un mobile da montare con i fori già nei punti giusti, e chi arriva dopo di te sa dove trovare ogni pezzo.

Il viaggio di una richiesta è lineare: entra da public/index.php, viene abbinata a una rotta dichiarata in routes/, passa da un controller, interroga il database attraverso un model Eloquent e torna indietro come pagina Blade o come JSON. Eloquent è un ORM in stile ActiveRecord, cioè ogni tabella ha la sua classe e lavori con quella invece che con le query a mano.

Quale versione di Laravel usare nel 2026

La regola del progetto è semplice, ossia, ogni major riceve bug fix per 18 mesi e patch di sicurezza per due anni, e ne esce una all’anno, di solito nel primo trimestre. Applicata alle versioni in circolazione, dice che Laravel 10 e 11 sono fuori supporto e non ricevono più nessuna correzione. Laravel 12 riceve ormai solo patch di sicurezza, con qualche mese di margine fino a inizio 2027. Laravel 13 è l’unica che ha davanti più di un anno di bug fix.

Le novità sono più sostanziose di quanto il “poco codice da cambiare” lasci pensare. Arrivano un SDK ufficiale per l’AI, le risorse JSON:API e la ricerca semantica nel query builder. Il Queue Routing decide in un punto solo su quale connessione e coda va ogni job, e gli attributi PHP rendono più leggibili controller e job (#[Middleware], #[Authorize], #[Tries], #[Timeout]). Il middleware CSRF diventa PreventRequestForgery e controlla anche l’origine della richiesta.

Come iniziare con Laravel

Servono PHP, Composer e l’installer di Laravel, più Node con NPM (oppure Bun) per compilare gli asset del frontend. Su macOS e Windows puoi saltare buona parte del lavoro con Laravel Herd, un ambiente di sviluppo grafico che porta con sé PHP e Nginx.

Il resto sono pochi comandi, eseguil’installer con composer global require laravel/installer, crei il progetto con laravel new example-app, entri nella cartella, lanci npm install && npm run build e poi composer run dev. Quest’ultimo avvia insieme server locale, queue worker e server di sviluppo Vite, e l’applicazione risponde su http://localhost:8000.

Il database di default è SQLite: l’installazione crea il file database/database.sqlite ed esegue già le migration, quindi per cominciare non devi configurare niente. Quando passi a MySQL o PostgreSQL cambi le variabili DB_* nel file .env, crei il database e lanci php artisan migrate. Quel file contiene credenziali e non va mai nel controllo di versione.

Se riprendi Laravel dopo qualche anno, ti sembrerà vuota la cartella routes/, dove trovi solo web.php e console.php. Le rotte per API e broadcasting si aggiungono quando servono, con php artisan install:api e php artisan install:broadcasting. Per tutto il resto lavori con i generatori (make:model, make:controller, make:resource) e modifichi i file che producono. Per l’editor esiste anche un language server ufficiale, il Laravel LSP, con estensioni per VS Code, Sublime Text e Zed.

Gli strumenti ufficiali: code, real-time, monitoraggio e prestazioni

Uno dei motivi per cui Laravel piace è che le esigenze ricorrenti hanno già uno strumento ufficiale. Quattro meritano di essere conosciuti, ognuno con la sua trappola.

Horizon per le code

Horizon ti dà una dashboard e una configurazione in codice per le code Redis. Funziona solo con Redis e, al momento, non è compatibile con Redis Cluster. La dashboard è aperta in locale ma in produzione resta chiusa finché non definisci il gate viewHorizon. Un dettaglio che sorprende: con il bilanciamento auto l’ordine in cui elenchi le code non crea nessuna priorità. Se ne vuoi una, servono più supervisor, ciascuno con le sue risorse.

Reverb per i WebSocket

Reverb è il server WebSocket ufficiale, si installa con php artisan install:broadcasting e si integra con il broadcasting del framework. Il limite da conoscere riguarda l’event loop di default, che regge in genere circa 1.024 file aperti. Oltre le mille connessioni concorrenti serve l’estensione ext-uv, e per andare oltre un singolo server si scala in orizzontale mettendo Redis al centro.

Pulse per il monitoraggio

Pulse è il cruscotto d’insieme: mostra server, utenti più attivi, eccezioni, code, richieste e query lente. Una richiesta, un job o una query è “lenta” oltre i 1.000 millisecondi, e la soglia si alza per singolo job, così un report annuale che dura cinque secondi per natura non riempie la dashboard di falsi allarmi. Se non riesce a scrivere, Pulse fallisce in silenzio per non appesantire l’applicazione che osserva. Per indagare un singolo evento la documentazione rimanda a Telescope.

Octane per le prestazioni

Octane avvia l’applicazione una volta sola e la tiene in memoria tra una richiesta e l’altra, appoggiandosi a FrankenPHP, Swoole o RoadRunner. Il guadagno si paga in disciplina: il processo non muore più, quindi un container o una request iniettati nel costruttore di un singleton restano quelli vecchi, e un array statico che cresce a ogni chiamata non si svuota. Per limitare i danni ogni worker viene riavviato dopo 500 richieste, e dopo un deploy serve php artisan octane:reload.

Laravel e intelligenza artificiale: cosa cambia per chi sviluppa

L’AI in Laravel 13 passa da tre strade diverse, e conviene non confonderle.

La prima è l’AI SDK ufficiale, un’API unica per generare testo, costruire agenti con tool, creare embedding, audio e immagini e collegarsi a un vector store. Il vantaggio è poter scrivere funzioni AI senza legarle a un solo provider. Rispetto agli altri framework gratuiti per creare agenti AI, qui l’agente vive dentro il ciclo di vita dell’applicazione, con tutto ciò che ne consegue per i permessi: un agente con dei tool esegue azioni vere partendo da testo che arriva da fuori, ed è il terreno classico della prompt injection.

Un’altra novità è la ricerca vettoriale nel query builder. Con whereVectorSimilarTo() interroghi una colonna di embedding, e gli embedding si generano direttamente da una stringa con Str::of(…)->toEmbeddings(). Il supporto documentato è per PostgreSQL con l’estensione pgvector.

L’ultima guarda dall’altra parte: Laravel Boost serve agli agenti che scrivono il tuo codice. Si installa come dipendenza di sviluppo e dà all’agente linee guida, skill, un server MCP e un’API di documentazione con oltre 17.000 voci, specifiche per le versioni dei pacchetti che usi. La documentazione definisce Laravel “agent ready”, e il ragionamento è convincente: con una struttura così prevedibile, un agente a cui chiedi un controller sa già dove metterlo.

Cosa puoi costruire: API, autenticazione e frontend

Per le API, Laravel 13 include risorse JSON:API che gestiscono serializzazione, relazioni, sparse fieldset e link secondo la specifica. Per l’autenticazione, Sanctum copre token e sessione, mentre Fortify si occupa di registrazione, reset della password, verifica dell’email, doppio fattore e passkey. I due non si escludono: spesso li usi insieme.

Sul frontend le strade documentate sono due. Puoi renderizzare con Blade e aggiungere interattività con Livewire, oppure appoggiarti a Inertia con un frontend JavaScript. Gli starter kit ufficiali ti danno già l’autenticazione impostata, e per compilare CSS e JavaScript si usa Vite.

Cosa controllare prima di andare in produzione

La sicurezza di un’applicazione Laravel è fatta soprattutto di configurazione. APP_DEBUG deve essere false, perché con il debug acceso rischi di mostrare agli utenti valori di configurazione sensibili. Il web server deve puntare a public/index.php e mai alla radice del progetto, e solo storage e bootstrap/cache hanno bisogno di permessi di scrittura. Le dashboard di Horizon e Pulse restano chiuse finché non definisci i loro gate. Non è una checklist completa: per XSS, SQL injection e mass assignment si parte dalla documentazione della versione che usi.

A ogni deploy lancia php artisan optimize, che mette in cache configurazione, eventi, rotte e view. C’è una trappola da conoscere: con la cache di configurazione attiva il file .env non viene più caricato, e ogni env() chiamata fuori dai file di config restituisce null. È il genere di bug che funziona sul tuo portatile e smette di funzionare il venerdì pomeriggio.

Resta il capitolo dei processi di lunga durata. Queue worker, Reverb e Octane continuano a servire il codice vecchio finché non li riavvii, e php artisan reload li ferma tutti insieme. Su Laravel Cloud non serve, perché se ne occupa la piattaforma. Per i controlli di stato Laravel espone di default la rotta /up, che risponde 200 se l’applicazione parte senza eccezioni e 500 in caso contrario. Se non vuoi gestire i server, le opzioni ufficiali sono Laravel Cloud, con calcolo, database, cache e storage gestiti, e Laravel Forge, che amministra i tuoi VPS al posto tuo.

 

Meglio Laravel o un’alternativa? I suggerimenti di Data Masters

Un confronto con gli altri framework richiederebbe dati che non abbiamo verificato, quindi non lo facciamo. Possiamo dirti cosa ottieni scegliendo Laravel: convenzioni che riducono le decisioni da prendere, code, real-time, monitoraggio e hosting dallo stesso fornitore e un calendario di supporto che conosci con largo anticipo. Il rovescio è che dipendi dalle scelte di quel fornitore.

Il resto dipende da due cose, cosa sa già il tuo team e quanto deve durare il progetto. Se deve restare in piedi più di diciotto mesi, parti da Laravel 13. Se hai già un’applicazione, controlla il numero nel composer.json prima di aprire qualsiasi altro file.

Se vuoi costruire applicazioni con agenti AI e recupero dei dati, l’AI Agentic Applications Masterclass è il percorso più avanzato del nostro catalogo su questo tema: 18 ore in diretta, con un blocco dedicato a embedding, vector store e tecniche di recupero.

NEWSLETTER

Ricevi direttamente sulla tua mail gli ultimi articoli pubblicati nella nostra sezione AI NEWS per rimanere sempre aggiornato e non perderti nessun contenuto.

Simone Truglia

AUTORE:Simone Truglia Apri profilo LinkedIn

Simone è un Ingegnere Informatico con specializzazione nei sistemi automatici e con una grande passione per la matematica, la programmazione e l’intelligenza artificiale. Ha lavorato con diverse aziende europee, aiutandole ad acquisire e ad estrarre il massimo valore dai principali dati a loro disposizione.