Categoria

Pagina 1 di 3

PHP: il linguaggio che regge una fetta enorme del web, usato come si deve

PHP non è legacy e non è "quello di WordPress". Con la 8.4 è un linguaggio tipizzato, veloce e con un ecosistema ingegneristicamente maturo, e la 8.5 continua a spingerlo in avanti. Lo uso da oltre vent'anni, ho attraversato ogni major dalla 4.x alla 8.x, e quello che porto in questa categoria non è l'entusiasmo per l'ultima novità, ma il criterio con cui si scrive PHP destinato a restare in produzione per anni.

Il primo tema è la modernità che conta davvero. Enums, property hooks, lazy objects, fibers, tipizzazione stretta e OPcache non sono voci di changelog da collezionare: sono strumenti che cambiano il modo di modellare un dominio e di reggere il carico. Scrivo di come si usano per rendere il codice più leggibile e più veloce, e di quando invece una feature nuova è solo zucchero sintattico che non vale il rischio di adottarla.

Il secondo tema è la realtà del codice legacy. La maggior parte del PHP che gira nelle aziende non è nuovo: è una base 5.x o 7.x che qualcuno deve tenere viva, mettere in sicurezza e portare avanti senza fermare il servizio. Qui l'esperienza pesa più della teoria, dal porting delle vecchie funzioni deprecate alla gestione dei cambi di comportamento silenziosi fra una versione e l'altra.

Il terzo tema è la sicurezza come parte del linguaggio, non come modulo aggiunto dopo: crittografia fatta con libsodium invece che a mano, sessioni difese da fixation e hijacking, upload validati in profondità, JWT implementati senza le trappole classiche. E sullo sfondo il capitolo che sta cambiando il mestiere: PHP nell'era dell'AI, dal debugging assistito alla validazione dell'output dei modelli.

Se hai un progetto PHP da modernizzare o un backend da irrobustire, guarda come lavoro sui progetti PHP senior oppure scrivimi per una consulenza mirata.

Il linguaggio non è mai il problema. Il problema è come lo usi, in che contesto, e se chi lo scrive sa davvero cosa sta facendo.

Laravel: la scelta migliore per le applicazioni Web-based

Laravel: la scelta migliore per le applicazioni Web-based "Laravel è la scelta migliore" è il tipo di affermazione di cui diffido, perché nessuno strumento è il migliore per tutto. Eppure, quando un cliente mi chiede su cosa costruire una nuova applicazione web aziendale, nella maggioranza dei casi la mia risposta è Laravel, e non per moda: è una scelta di ingegneria, fondata su velocità di sviluppo, manutenibilità ed ecosistema. Vediamo perché lo scelgo, cosa lo distingue nel 2026, e quando invece consiglio altro. Continua a leggere
Ultima modifica:

Migrare un gestionale PHP 5.6 a PHP 8.4 senza riscriverlo: il caso reale di un e-commerce B2B con 12 anni di codice procedurale

Migrare un gestionale PHP 5.6 a PHP 8.4 senza riscriverlo: il caso reale di un e-commerce B2B con 12 anni di codice procedurale Un e-commerce B2B con 47.000 righe di PHP 5.6 procedurale, 340 chiamate mysql_connect(), un hosting che aveva annunciato la rimozione di PHP 5.6 entro 60 giorni, e un titolare che non poteva permettersi downtime. In quattro settimane l'ho migrato a PHP 8.4 senza riscrivere l'applicazione: ecco il metodo, gli strumenti, le breaking changes reali e le decisioni che hanno fatto la differenza. Continua a leggere
Ultima modifica:

PHP e memory management: come evitare i memory leak nelle applicazioni di lunga esecuzione

PHP e memory management: come evitare i memory leak nelle applicazioni di lunga esecuzione I worker Laravel Horizon di un cliente consumavano 500MB di RAM dopo 6 ore di esecuzione e venivano killati automaticamente. Il memory leak non era ovvio: un event listener registrato globalmente teneva riferimenti a ogni job processato. Vi mostro il processo di diagnosi con Blackfire e le strategie di correzione. Continua a leggere
Ultima modifica:

Gestione delle sessioni sicure in PHP: session fixation, hijacking e best practice

Gestione delle sessioni sicure in PHP: session fixation, hijacking e best practice La sessione PHP è uno dei vettori di attacco più sottovalutati. In un assessment su un portale bancario PHP, ho dimostrato session fixation in meno di 10 minuti sfruttando un PHPSESSID passato in query string. Vi mostro la configurazione php.ini che elimina la classe di vulnerabilità e i pattern di sessione sicura per Laravel. Continua a leggere
Ultima modifica:

PHP 8 Enums: sostituire le costanti di classe e i magic strings nei domini di business

PHP 8 Enums: sostituire le costanti di classe e i magic strings nei domini di business Ogni codebase PHP legacy che eredo ha la stessa peste: costanti integer o stringhe magiche per rappresentare stati di business. ORDINE_STATO_1, ORDINE_STATO_2. Con PHP 8 Enums, ho modernizzato un sistema ordini trasformando 40 costanti sparse in enum tipizzati con metodi di dominio. Il codice è diventato leggibile. Continua a leggere
Ultima modifica:

Dependency injection avanzato in PHP 8: costruire servizi testabili e sostituibili

Dependency injection avanzato in PHP 8: costruire servizi testabili e sostituibili La dependency injection è il pattern che più di ogni altro determina la testabilità del codice PHP. Vi mostro i pattern avanzati che uso in progetti complessi: constructor promotion di PHP 8, binding a interfaccia, lazy proxy per servizi costosi e come scrivere test che non dipendono dall'implementazione concreta. Continua a leggere
Ultima modifica:

Sicurezza e Validazione in PHP: prevenire gli attacchi

Sicurezza e Validazione in PHP: prevenire gli attacchi La vecchia ricetta della "classe di sicurezza" che ripulisce GET e POST all'ingresso non protegge più nulla: è un anti-pattern che dà falsa sicurezza. La doctrine corretta nel 2026 è netta: si valida l'input al confine con una logica di allowlist e si escapa l'output in base al contesto in cui finisce. Vediamo come si fa davvero, con filter_var, prepared statement, htmlspecialchars e una Content Security Policy. Continua a leggere
Ultima modifica:

Strumenti PHP utili

Tool gratuiti che uso e che possono servirti mentre lavori su PHP:

Audit del composer.lock, Regex tester, JSON formatter, Generatore UUID.