PHP, il linguaggio di programmazione ampiamente utilizzato in tutto il mondo, il 23 Novembre scorso ha recentemente annunciato l’uscita di PHP 8.3, l’ultimo aggiornamento annuale di grande rilievo. Questa nuova versione porta con sé una serie di novità e miglioramenti, mantenendo PHP al passo con le esigenze attuali dello sviluppo web.
Una nuova versione di PHP viene rilasciata approssimativamente ogni 12 mesi, con l’ultimo rilascio che è stato il 8.2 nel dicembre 2022. Ogni rilascio ha due anni di supporto attivo e un anno di supporto di sicurezza, quindi il 8.0 – rilasciato il 26 novembre 2020 – uscirà dal supporto di sicurezza tra pochi giorni, sebbene i fornitori di sistemi operativi possano avere le loro proprie politiche di supporto che includono PHP. È comune che le versioni di PHP che sono fuori supporto da molto tempo rimangano in uso, e un rapporto all’inizio di quest’anno ha affermato che la maggioranza delle implementazioni si trova in questo stato.
Novità Principali di PHP 8.3
- Accesso Dinamico alle Costanti di Classe: È stata introdotta una nuova sintassi che permette l’accesso dinamico alle costanti di classe, semplificando l’interazione con queste.
- Gestione Migliorata di Date e Orari: Sono state implementate eccezioni più appropriate per la gestione di date e orari, rendendo il trattamento di queste informazioni più intuitivo e meno soggetto ad errori.
- Funzione json_validate(): Questa funzione aggiunta permette la validazione di stringhe JSON, una funzionalità cruciale nell’era dell’interoperabilità dei dati.
- Attributo #[\Override]: Implementato per verificare l’esistenza di un metodo in una classe genitore o in un’interfaccia implementata, facilitando la gestione dell’ereditarietà e del polimorfismo.
- Estensione Zip Aggiornata: Sono stati aggiunti nuovi metodi per impostare e ottenere flag dell’archivio, migliorando la manipolazione dei file compressi.
- Supporto POSIX Esteso: L’aggiunta di funzioni come posix_sysconf e posix_eaccess arricchisce il supporto PHP per gli standard POSIX.
- Nuove Opzioni per PHP Sockets: L’aggiunta di queste opzioni espande le possibilità di comunicazione di rete in PHP.
- Randomizer Class: Introduzione di nuove funzionalità per la classe Randomizer, potenziando la generazione di numeri casuali.
- Supporto cURL Aggiornato: Supporto per le nuove opzioni e costanti di cURL fino alla versione 7.87, essenziale per le richieste HTTP.
- Nuovi Metodi DOM: L’aggiunta di metodi per i nodi e gli elementi DOM facilita la manipolazione del Document Object Model.
- Arrotondamento in number_format(): Ora è possibile arrotondare a cifre negative, permettendo una maggiore flessibilità nel formattare i numeri.
- Supporto per zend_call_stack_get su OpenBSD: Estende la compatibilità di PHP con differenti sistemi operativi.
- Linting di Più File: La possibilità di effettuare il linting su più file contemporaneamente con l’opzione php -l.
- Indici Negativi negli Array: Questo supporto offre nuove dinamiche nella gestione degli array.
- Classi Anonime di Sola Lettura: Introduce una maggiore sicurezza e incapsulamento nel codice.
- Costanti di Classe Tipizzate: Ora è possibile dichiarare tipi per le costanti di classe, interfaccia, trait ed enum.
- Closures da Metodi Magici con Argomenti Denominati: Questa caratteristica rende le closures più versatili e potenti.
- STREAM_NOTIFY_COMPLETED: Una nuova notifica per i flussi di PHP, migliorando la gestione dei flussi di dati.
- Correzioni di Bug e Altri Miglioramenti: Una serie di correzioni di bug e miglioramenti vari che rendono PHP 8.3 una versione più stabile e performante.
Performance e Benchmark PHP 8.3
Dalle ricerche e dai benchmark disponibili, si evince che non ci sono significative differenze in termini di performance tra PHP 8.2 e PHP 8.4. Questo suggerisce che, a partire dalla versione 8.1, PHP sembra aver raggiunto un plateau in termini di prestazioni. Questo scenario implica che le performance attuali potrebbero rimanere costanti per tutto il ramo 8 e nei prossimi anni, a meno che non si intraprenda una revisione radicale del linguaggio. Una tale revisione potrebbe mirare a superare i limiti attuali e spingere ulteriormente le capacità di PHP, alzando l’asticella delle prestazioni.