Categoria

Pagina 2 di 8

PHP: il motore di una fetta enorme del web, scritto bene

PHP non è morto, non è legacy, non è solo "lo usano ancora per WordPress". Oggi PHP 8.4 è un linguaggio moderno, tipizzato, veloce, con un ecosistema ingegneristicamente maturo. Lo uso da vent'anni, ho attraversato ogni major release dal 4.x all'8.x, e oggi lo scelgo consapevolmente ogni volta che un cliente ha bisogno di un backend affidabile.

In questa categoria trovi articoli su PHP moderno: nuove feature linguistiche, OPcache, attributes, enums, fibers, typed properties, e come portare una base PHP 5.x o 7.x verso PHP 8.x senza rompere nulla. Scrivo dall'esperienza di chi manutiene codebase di produzione, non dal punto di vista dello sviluppatore che ha letto la documentazione.

Se hai un progetto PHP da modernizzare, un'applicazione lenta da ottimizzare, o semplicemente vuoi confrontarti con un consulente senior che lavora su PHP da più tempo di molti framework attuali, parliamone. Puoi anche scoprire il mio percorso professionale.

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

AI-assisted debugging: usare Claude per analizzare stack trace e trovare la root cause

AI-assisted debugging: usare Claude per analizzare stack trace e trovare la root cause Uno stack trace PHP con 40 frame, un log Nginx con 3.000 righe e un crash che si ripete ogni 6 ore in modo non deterministico. Ho costruito un workflow di debugging assistito da Claude che porta dal sintomo alla root cause in 20 minuti invece di 4 ore. Vi mostro il prompt che uso e come strutturare il contesto. 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:

Doctrine ORM avanzato: query builder, DQL e ottimizzazione per applicazioni Symfony

Doctrine ORM avanzato: query builder, DQL e ottimizzazione per applicazioni Symfony Doctrine è potente ma le sue trappole di performance sono subdole. Ho ottimizzato un'applicazione Symfony con 2 milioni di record: lazy loading che generava 8.000 query per pagina, identity map che saturava la memoria nei batch, eager loading mal configurato. Vi mostro le soluzioni sistematiche per ciascun problema. Continua a leggere
Ultima modifica:

Migrazione da Symfony 5 a Symfony 7: guida pratica con casi reali di breaking change

Migrazione da Symfony 5 a Symfony 7: guida pratica con casi reali di breaking change Ho migrato tre applicazioni da Symfony 5 a Symfony 7 in produzione. Il percorso non è una singola migrazione: si passa per Symfony 6 gestendo ogni set di deprecation progressivamente. Vi racconto i breaking change che mi hanno sorpreso di più, le scorciatoie che non funzionano e il processo sistematico che uso. Continua a leggere
Ultima modifica:

Ottimizzare le build Docker per applicazioni PHP: layer caching e immagini minimali

Ottimizzare le build Docker per applicazioni PHP: layer caching e immagini minimali La build Docker di un'applicazione Laravel richiedeva 8 minuti ogni volta. Con l'ottimizzazione del layer caching (dipendenze Composer separate dal codice applicativo), multi-stage build e l'immagine finale Alpine, siamo scesi a 90 secondi. Il CI è diventato abbastanza veloce da aspettare il feedback. Continua a leggere
Ultima modifica:

Modernizzare un gestionale finanziario PHP 5.4 sotto vincolo NIS2: quattro mesi per portare a compliance un sistema di 93.000 righe con dati di 11.000 clienti

Modernizzare un gestionale finanziario PHP 5.4 sotto vincolo NIS2: quattro mesi per portare a compliance un sistema di 93.000 righe con dati di 11.000 clienti Gestionale PHP 5.4 di un intermediario creditizio: 93.000 righe, dati di 11.000 clienti, password in MD5, zero cifratura, backup su disco USB. NIS2 e DORA imponevano adeguamento immediato. Da settembre a dicembre 2025 ho portato il sistema a PHP 8.4 con cifratura, audit trail, 2FA e documentazione che ha superato la verifica dell'auditor. Continua a leggere
Ultima modifica:

OpenTelemetry per PHP: distributed tracing end-to-end senza vendor lock-in

OpenTelemetry per PHP: distributed tracing end-to-end senza vendor lock-in Datadog costa 30€ per host al mese. Per un'architettura con 8 microservizi PHP su Kubernetes, il costo era insostenibile. Ho migrato verso OpenTelemetry con collector auto-hosted e Jaeger come backend: zero costi aggiuntivi, stessa visibilità sulle trace distribuite tra i servizi. Continua a leggere
Ultima modifica:

Prompt engineering avanzato per sviluppatori: pattern concreti per task tecnici ricorrenti

Prompt engineering avanzato per sviluppatori: pattern concreti per task tecnici ricorrenti Il prompt engineering non è magia, è struttura. Ti mostro i 6 pattern che uso quotidianamente per task tecnici: chain of thought per debugging complessi, few-shot con esempi verificati per generazione codice coerente, structured output per pipeline automatiche, system prompt con boundaries espliciti. Ogni pattern con template riutilizzabile e anti-pattern da evitare. Continua a leggere
Ultima modifica:

Feature flag production-ready in PHP: rollout graduale senza rischi di regressione

Feature flag production-ready in PHP: rollout graduale senza rischi di regressione Laravel Pennant è ottimo, ma avevo un'applicazione Symfony 7 che necessitava di feature flag con targeting granulare: per singolo utente, per piano di abbonamento, per percentuale. Ho costruito un sistema su Redis con UI di amministrazione e audit log delle attivazioni. Zero regressioni in 8 mesi di uso produttivo. Continua a leggere
Ultima modifica:

Testcontainers per PHP: test di integrazione con database e servizi reali in CI

Testcontainers per PHP: test di integrazione con database e servizi reali in CI I test con SQLite in memoria non trovano i bug che nascono dalle differenze tra SQLite e MySQL. Con Testcontainers per PHP, ogni test di integrazione ottiene un'istanza MySQL reale in un container Docker, azzerata tra le esecuzioni. Ho adottato questo approccio per un cliente e-commerce: i bug in staging sono scesi del 60%. Continua a leggere
Ultima modifica: