Se tutto dovesse andare come previsto dagli sviluppatori, il 6 giugno 2024 sarà disponibile la prima alpha di PHP 8.4. La prossima major release del linguaggio raggiungerà poi la fase di feature freeze a metà luglio, mentre la versione definitiva dovrebbe essere rilasciata il 21 novembre 2024. Dopo tre beta e 6 Release Candidate. Quali saranno le novità di questo aggiornamento? Analizziamo nel dettaglio le principali tenendo conto delle anticipazioni rilasciate fino ad ora.
Nuove opzioni per la funzione round()
PHP_ROUND_CEILING
, PHP_ROUND_FLOOR
, PHP_ROUND_AWAY_FROM_ZERO
e PHP_ROUND_TOWARD_ZERO
saranno le nuove opzioni della funzione round()
. Esse dovrebbero garantire un maggior livello di precisione nelle procedure di arrotondamento dei valori numerici.
bcrypt e hashing delle password
Il valore del parametro bcrypt
verrà incrementato a 12
. Parliamo nello specifico del parametro che controlla il costo dell'hashing delle password in termini computazionali. Con questa modifica il processo di hashing potrebbe risultare più lento, anche se non sempre in modo evidente, ma con un guadagno in termini di sicurezza contro gli attacchi brute force.
Classi DateTime e DateTimeImmutable
In PHP 8.4 le classi DateTime
e DateTimeImmutable
presenteranno anche i metodi getMicrosecond
e setMicrosecond
. Questi ultimi, che permettono di accedere a valori in termini di millisecondi, dovrebbero essere particolarmente utili nello sviluppo di applicazioni dove le misure temporali devono essere di altissima precisione. Si pensi per esempio alle piattaforme che offrono servizi legati alla Fintech.
Dichiarazione esplicita dei parametri nullable in PHP 8.4
I nullable si riferiscono a parametri di funzione che possono essere associati al valore null
oltre ai loro tipi di dati definiti. In PHP 8.4 la loro dichiarazione implicita verrà considerata deprecata in favore di un dichiarazione esplicita. Viene inoltre consigliato di dichiarare esplicitamente i tipi nullable tramite il prefisso ?
per una maggiore chiarezza del codice e per la compatibilità con la tipizzazione del linguaggio.
Gestione degli header HTTP
Le funzioni http_get_last_response_headers()
e http_clear_last_response_headers()
renderanno ancora più efficace la gestione degli header HTTP. La prima permetterà di recuperare le intestazioni dell'ultima richiesta HTTP ricevuta dallo script in esecuzione. La seconda cancellerà gli header recuperati dalla funzione precedente.
Parsing XML in PHP 8.4
L'opzione XML_OPTION_PARSE_HUGE
è appositamente dedicata al parsing di documenti XML di grandi dimensioni. Usata correttamente dovrebbe permettere di evitare alcuni errori oggi frequenti con questo tipo di contenuti.