Rilasciata ufficialmente il 26 novembre 2020, la nuova versione PHP 8 apporta diverse novità e funzioni interessanti, volte ad incrementare le performance e, al tempo stesso, la sicurezza.
Abbiamo già reso disponibile la versione 8 sui nostri server cloud e server dedicati con Plesk, dalla versione Obsidian 18.0.32 e sui nostri piani hosting dotati di multiphp.
Di seguito, ecco le principali novità introdotte da PHP 8.
Indice dei contenuti:
Compilazione JIT
Una tra le funzionalità più attese è il Compiler Just-in-time (JIT). Di per sé, il linguaggio PHP viene tradotto in codice macchina durante il tempo di esecuzione: il compilatore JIT tiene traccia nella cache del codice utilizzato di frequente e tenta di ottimizzare la traduzione del codice macchina così da poter essere riutilizzato.
Questa novità ha l’obiettivo di migliorare le prestazioni di specifiche funzionalità e l’utilizzo della memoria.
Union Types
Gli Union Types permettono di autorizzare due o più tipi per unione rendendo possibile l’utilizzo di ognuno di questi.
Invece di utilizzare l’annotazione di PHPdoc per combinare i tipi si può usare la dichiarazione di union type nativa che è valida anche runtime. Data la tipizzazione dinamica di PHP, è sicuramente utile poter specificare più tipi di dato possibili per un parametro, non solo nelle annotazioni.
Named Arguments
L’aggiornamento a PHP 8 specificherà il nome del parametro da passare, saltando invece i parametri opzionali. In questo modo, sarà possibile eseguire una funzione passando un argomento per nome, e non in base alla posizione. Di conseguenza, i parametri saranno indipendenti dall’ordine.
Operatore Nullsafe
Invece di controllare se ogni singolo elemento di una struttura è null, si può ora utilizzare una catena di chiamate col nuovo nullsafe operator. Quando la valutazione di uno degli elementi della catena fallisce, l’esecuzione dell’intera catena viene annullata e il risultato dell’intera catena è null.
Espressione Match
Il nuovo costrutto Match è simile allo switch e ha seguenti funzionalità:
- Il match è un’espressione quindi il suo risultato può essere salvato in una variabile o ritornato.
- I rami del match supportano solo espressioni a singola linea e non necessitano del costrutto “break;”.
- Il costrutto match fa un confronto stretto quindi confronta anche il tipo.
Comparazioni più coerenti di stringhe e numeri
Quando confronti una stringa numerica, PHP 8 usa una comparazione tra numeri. Al contrario, confrontando una stringa che non contiene solo numeri, viene utilizzata la comparazione tra stringhe quindi trasformando i numeri dell’espressione in stringhe.
Tipi di errori consistenti per le funzioni native
Con l’aggiornamento a PHP 8, molte delle funzioni di PHP native lanciano un’eccezione di errore se la validazione dei parametri fallisce.
Attributi
Invece di usare le annotazioni PHPDoc, PHP 8 introduce i metadati strutturati e nativi di PHP. Se prima era possibile inserire i metadati esclusivamente all’interno dei blocchi di commenti multi-riga, con PHP 8 è possibile aggiungere i metadati alle classi.
Promozione a proprietà degli argomenti del costruttore
Con PHP 8 potrai ridurre il codice per definire e inizializzare le proprietà, scrivendole come argomento del costruttore.
Queste sono solo alcune tra le principali novità introdotte dalla release di PHP 8, con l’obiettivo di migliorare le performance del tuo sito e garantire maggiore sicurezza dei dati. Preparati ad aggiornare all’ultima versione!