Categoria

Pagina 3 di 4

Laravel: il framework PHP che scelgo per i progetti che devono durare

Laravel è oggi il framework PHP più serio per costruire applicazioni aziendali, per la maturità ingegneristica del suo ecosistema. Lo uso dalle prime versioni 5.x fino alla 12 su gestionali, piattaforme SaaS, e-commerce e sistemi B2B che devono restare in produzione per anni. In questa categoria porto il criterio con cui si decide che cosa adottare e che cosa lasciar perdere.

Al centro c'è l'architettura. Un progetto Laravel invecchia bene solo se la logica di business è separata dall'infrastruttura, se i controller restano magri e la complessità vive in un service layer testabile: così l'applicazione si estende senza paura, e una modifica non porta regressioni a catena. Scrivo di service layer e principi SOLID, di quando un pattern come l'event-driven o il repository aggiunge valore reale e quando è solo cerimonia, e di quel confine, spesso frainteso, oltre il quale spezzare un monolite in microservizi costa più di quanto rende.

Molto spazio va alla vita dell'applicazione in produzione: le prestazioni sotto carico vero, dove il collo di bottiglia sta quasi sempre nell'accesso ai dati; il lavoro asincrono con code e worker, che diventa indispensabile appena un'operazione non può più bloccare la richiesta dell'utente; e la sicurezza, che in Laravel si tiene dal primo commit, dalla gestione dei segreti all'hardening secondo criteri verificabili.

E poi c'è il tempo: come si accompagna una codebase attraverso le versioni major senza fermare il business, come si subentra su un progetto ereditato e senza documentazione, come si modernizza una base datata senza riscriverla da zero. È il lavoro meno appariscente, e protegge un'azienda dal debito tecnico che si accumula in silenzio. Sullo sfondo, il capitolo che si sta aprendo ora: Laravel che diventa AI-native, e il modo corretto di orchestrare i modelli lasciando il controllo del dominio all'applicazione.

Se hai un progetto Laravel da far scalare o una base da modernizzare, vedi i miei progetti PHP senior o parliamone nella consulenza IT e DevOps.

Laravel ben scritto è codice che altri possono leggere, estendere e manutenere senza chiamarti nel weekend.

Gestione strategica dei log Laravel su Hetzner e OVH: come ottantasette gigabyte di laravel.log hanno fermato un magazzino e cosa configurare al suo posto

Gestione strategica dei log Laravel su Hetzner e OVH: come ottantasette gigabyte di laravel.log hanno fermato un magazzino e cosa configurare al suo posto A novembre 2024 ho gestito un incidente su un magazzino logistico cuneese in cui il server di produzione era stato fermato da un file laravel.log da 87 GB cresciuto in otto mesi senza rotazione. Il piano di gestione strategica dei log Laravel su Hetzner/OVH che ho costruito dopo l'incidente: logrotate, Monolog JSON, canali separati, centralizzazione su Loki. Continua a leggere
Ultima modifica:

Deploy Laravel su Hetzner e OVH: come ho convertito un cliente dal venerdì del terrore al rollback in otto secondi con Deployer e GitHub Actions

Deploy Laravel su Hetzner e OVH: come ho convertito un cliente dal venerdì del terrore al rollback in otto secondi con Deployer e GitHub Actions Il deploy del venerdì sera è uno dei principali generatori di incidenti nelle PMI Laravel. Il caso di un cliente lombardo del marzo 2025 che ha perso 23 minuti di e-commerce per un comando dimenticato, e come l'ho convertito a un flusso Deployer + GitHub Actions con rollback in 8 secondi. Continua a leggere
Ultima modifica:

Software legacy in azienda: perché ignorare la modernizzazione è una bomba a orologeria per il tuo business

Software legacy in azienda: perché ignorare la modernizzazione è una bomba a orologeria per il tuo business Il software legacy rappresenta una minaccia concreta alla sicurezza, all'efficienza e alla competitività delle PMI italiane. In questo redazionale approfondito, scoprirai perché ignorarlo è pericoloso, e come una strategia di refactoring mirata con Laravel può trasformare un rischio in un'opportunità, guidata dall'esperienza di un professionista con 20 anni di carriera nel PHP e Laravel. Continua a leggere
Ultima modifica:

Laravel Octane nel 2026: quando ha senso per una PMI e come evitarne i tranelli in produzione

Laravel Octane nel 2026: quando ha senso per una PMI e come evitarne i tranelli in produzione Laravel Octane 2.x oggi supporta FrankenPHP, Swoole e RoadRunner: tre driver con trade-off molto diversi. Per le PMI il problema non è "quanti RPS guadagno", ma se la codebase è pronta a vivere in memoria. Singleton, static state e persistent connections sono problemi documentati. Guida operativa: quando Octane ha senso, quando no, e come auditare la codebase prima del cutover. Continua a leggere
Ultima modifica:

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:

Sicurezza upload immagini in Laravel 12: perché la regola image esclude gli SVG e come validare i file in modo sicuro

Sicurezza upload immagini in Laravel 12: perché la regola image esclude gli SVG e come validare i file in modo sicuro La PR #54331 di Laravel 12 (gennaio 2025) ha escluso gli SVG dalla regola image di default - un breaking change giustificato dal fatto che oltre 500 repository pubblici usavano image senza escludere SVG. Un file SVG è XML e può contenere tag script, event handler inline e foreignObject con HTML arbitrario. La validazione MIME non rileva questi payload. 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:

Strategy pattern in Laravel: selezione dinamica di implementazioni con Service Container, contextual binding e Pennant

Strategy pattern in Laravel: selezione dinamica di implementazioni con Service Container, contextual binding e Pennant Lo Strategy pattern - un behavioral pattern del Gang of Four - in Laravel si implementa con il Service Container: bind() per il default, when()->needs()->give() per eccezioni contestuali, e Feature::active() di Pennant per switching runtime basato su feature flag. Nessuna factory custom necessaria. Continua a leggere
Ultima modifica:

Strumenti per chi sviluppa in Laravel

Piccoli tool che tornano comodi nel lavoro quotidiano:

Audit del composer.lock, Regex tester, Generatore UUID, Interprete di espressioni cron.