Categoria

Pagina 1 di 1

Laravel 11: lo skeleton slim e le scelte di design

Laravel 11 ha semplificato la struttura applicativa riducendo file e boilerplate. Per chi arriva da versioni precedenti non è solo un upgrade: è un cambio di abitudini nel modo di organizzare middleware, service provider e configurazione. Uso Laravel 11 in progetti nuovi e supporto migrazioni dalla 9/10 con metodo.

In questa categoria trovi articoli specifici su Laravel 11: nuove feature, trade-off rispetto alla 10, pattern migratori e integrazione con l'ecosistema Octane, Pulse e Reverb. Contattami per un'analisi del tuo progetto, oppure scopri come lavoro.

Controller base Laravel 12: da AuthorizesRequests e ValidatesRequests impliciti a Form Request, Gate e composizione esplicita

Controller base Laravel 12: da AuthorizesRequests e ValidatesRequests impliciti a Form Request, Gate e composizione esplicita Il PR #6188 "Slim skeleton" di Taylor Otwell ha rimosso AuthorizesRequests e ValidatesRequests dal Controller base di Laravel 11. La motivazione: "$this->validate has not been documented in some time. $this->authorize can simply be Gate::authorize." Le Form Request (introdotte in Laravel 5.0, febbraio 2015) e il facade Gate sostituiscono i trait impliciti con composizione esplicita - il principio "favor composition over inheritance" del Gang of Four applicato al framework. Continua a leggere
Ultima modifica:

Health check applicativi Laravel 12: da controller custom a Health Routing con DiagnosingHealth e spatie/laravel-health

Health check applicativi Laravel 12: da controller custom a Health Routing con DiagnosingHealth e spatie/laravel-health L'Health Routing di Laravel, introdotto in Laravel 11 (PR #47309), espone un endpoint /up che dispatcha l'evento DiagnosingHealth - i listener che lanciano eccezioni causano HTTP 500, altrimenti HTTP 200. È un check pass/fail per load balancer e Kubernetes probes. Per monitoring dettagliato con dashboard e notifiche, spatie/laravel-health (10M+ install) offre 16+ check integrati. AWS Builders' Library documenta il trade-off tra shallow e deep health check. Continua a leggere
Ultima modifica:

L'helper once() in Laravel 12: memoizzazione per-request con WeakMap al posto di proprietà statiche e cache forzata

L'helper once() in Laravel 12: memoizzazione per-request con WeakMap al posto di proprietà statiche e cache forzata L'helper once(), introdotto in Laravel 11 (PR #49744, Nuno Maduro), usa internamente una WeakMap di PHP 8.0 per cachare il risultato di una closure per la durata della request. In metodi d'istanza la cache è per-oggetto, in metodi statici è per-classe, in contesto globale è per call-site. In Octane, FlushOnce esegue Once::flush() tra le request. Continua a leggere
Ultima modifica:

Event discovery in Laravel 12: da EventServiceProvider a auto-discovery per listener disaccoppiati e testabili

Event discovery in Laravel 12: da EventServiceProvider a auto-discovery per listener disaccoppiati e testabili L'event discovery scansiona automaticamente i listener nella directory app/Listeners e li registra in base al type-hint del metodo handle(). Introdotto in Laravel 5.8.9 come opt-in, è diventato il default da Laravel 11 con la rimozione dell'EventServiceProvider dallo skeleton. Il risultato: zero configurazione manuale, listener auto-registranti e testabili con Event::fake(). Continua a leggere
Ultima modifica:

Concurrency::run() in Laravel: esecuzione parallela di task I/O-bound senza code, worker o estensioni pcntl

Concurrency::run() in Laravel: esecuzione parallela di task I/O-bound senza code, worker o estensioni pcntl Concurrency::run() è stato introdotto in Laravel 11.23 e stabilizzato in Laravel 12. Il driver process (default) serializza le closure, le esegue in processi PHP figli separati via Artisan, e restituisce i risultati al processo padre. Non usa fibers né thread - ogni task ha il proprio bootstrap completo dell'applicazione. Continua a leggere
Ultima modifica:

Testing dei job in coda Laravel: da Queue::fake() a withFakeQueueInteractions() per validare retry, release e failure senza broker

Testing dei job in coda Laravel: da Queue::fake() a withFakeQueueInteractions() per validare retry, release e failure senza broker Queue::fake() verifica che un job venga dispatchato correttamente, ma non testa cosa succede dentro handle() quando il job deve rilasciarsi, cancellarsi o fallire. withFakeQueueInteractions(), introdotto in Laravel 11, permette di chiamare handle() in isolamento e asserire su release(), delete() e fail() senza un broker reale. Continua a leggere
Ultima modifica:

Modernizzare i Model Eloquent Laravel: guida al refactoring da $casts array (L9/L10) al potente metodo casts() in Laravel 12

Modernizzare i Model Eloquent Laravel: guida al refactoring da $casts array (L9/L10) al potente metodo casts() in Laravel 12 La proprietà $casts non è deprecata in Laravel 12, ma il metodo casts() introdotto in Laravel 11 abilita chiamate statiche come AsEnumCollection::of() e AsCollection::using() - impossibili in una definizione di proprietà PHP. Ecco quando e come migrare. Continua a leggere
Ultima modifica:

Aggiornamento sicurezza credenziali Laravel: implementare rotazione chiavi e rehashing password da L9/L10 a L12 per la tua impresa

Aggiornamento sicurezza credenziali Laravel: implementare rotazione chiavi e rehashing password da L9/L10 a L12 per la tua impresa Una ricerca GitGuardian/Synacktiv del 2025 ha trovato 260.000 APP_KEY Laravel esposte su GitHub, con oltre 600 applicazioni vulnerabili a RCE. Laravel 11 ha introdotto la rotazione graceful delle chiavi e il rehashing automatico delle password - due funzionalità che riducono drasticamente il rischio. Continua a leggere
Ultima modifica:

Refactoring applicazione Laravel 10: guida passo-passo per adottare la struttura snella di Laravel 12 e centralizzare la configurazione

Refactoring applicazione Laravel 10: guida passo-passo per adottare la struttura snella di Laravel 12 e centralizzare la configurazione Laravel 11 ha introdotto la struttura slim che elimina Http/Kernel, Console/Kernel e la maggior parte dei Service Provider, centralizzando tutto in bootstrap/app.php. La guida ufficiale dice che la migrazione non è obbligatoria - ma in un applicativo con logica custom sparsa tra Kernel e Provider, adottarla riduce il boilerplate e la superficie di manutenzione. Continua a leggere
Ultima modifica: