PHP Psalm 7

Psalm è uno degli strumenti che possono essere usati per migliorare la qualità, l’affidabilità e la sicurezza del codice PHP, soprattutto nei progetti medio-grandi e nei framework come Laravel e Symfony. E’ uno strumento di analisi statica del codice (Static Code Analysis) per l’individuazione per esempio Type checking (Errori di tipo), vulnerabilità e codice inutilizzato; non sostituisce i classici PHPUnit o i test funzionali ma è utile per migliorare ulteriormente il codice.

La versione 7, rilasciata il 2 novembre 2026, introduce cambiamenti importanti rispetto alla versione 6. La novità più significativa è che l’analisi dei tipi, l’analisi di sicurezza e il rilevamento del codice inutilizzato vengono integrati in un unico processo anziché separati come nella versione 6. L’analisi può essere fino a 10 volte più veloce rispetto al precedente approccio.
Psalm 7 integra la cosiddetta taint analysis, ovvero l’analisi della propagazione dei dati potenzialmente pericolosi. L’obiettivo è individuare quando un dato proveniente da una fonte non attendibile arriva in un punto del programma in cui potrebbe provocare una vulnerabilità.

Facciamo un esempio classico relativo alla validazione dell’input:

$id = $_GET[‘id’];
$query = “SELECT * FROM users WHERE id = ” . $id;
$pdo->query($query);

Il problema è che $id arriva direttamente dall’utente e viene inserito nella query SQL senza una corretta parametrizzazione.

Un’altra novità importante è l’integrazione automatica di diversi plugin, i quali vengono attivati automaticamente quando Psalm riconosce le librerie corrispondenti nel progetto. In Psalm 7 è incluso il supporto per: PHPUnit, Symfony, Laravel, Mockery e sabre.
Questo significa che Psalm può comprendere meglio il comportamento di framework e librerie, evitando di trattare come codice sconosciuto funzionalità che conosce già.
Non manca l’introduzione del supporto delle nuove funzionalità di PHP 8.5 e 8.6. Per quanto riguarda i requisiti (Runtime minimo), Psalm 7 richiede una versione di PHP da 8.2 fino a 8.6 (a 64 bit) per essere eseguito. Questa limitazione nei requisiti non significa che il tool può analizzare anche applicazioni solo destinate a versioni queste versioni di PHP ma arriva anche ad analizzare codice scritto in PHP 5.6, utile a modernizzazione di progetti PHP legacy.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *