Versioni di PHP

Versioni di PHP

Come qualsiasi altro software ben supportato, PHP si è evoluto molto fin dalla sua nascita. Ogni nuova versione ha apportato vari miglioramenti e arricchito il linguaggio di nuove funzionalità.

A questo vanno aggiunti gli aggiornamenti di sicurezza e la copertura dei bug più gravi, oltre a varie deprecazioni.

Il 31 dicembre 2018 è terminato il supporto per PHP 5.6. Questo ha segnato la fine di un’era per PHP 5, in quanto la prima versione, la 5.0, è stata rilasciata 15 anni fa.

Quanto segue prende spunto dalla sezione dedicata alle versioni di PHP, presente su Wikipedia.

Tutte le versioni del linguaggio dal 1995

Ripercorriamo la storia di PHP attraverso le versioni del linguaggio a partire dalla 1.0, rilasciata ben 24 anni fa.

PHP 1.0

Data di rilascio 8 giugno 1995

Questa prima versione del linguaggio, chiamata ufficialmente "Personal Home Page Tools (PHP Tools)", è costituita da una raccolta di script CGI in linguaggio C. È il primo utilizzo del nome "PHP".

PHP 2.0

Data di rilascio: 1 novembre 1997

Chiamata ufficialmente "PHP/FI 2.0". È con questa versione che PHP inizia ad assomigliare a un vero linguaggio di programmazione, e a prendere molte delle caratteristiche che troviamo tutt'oggi.

Il codice PHP veniva inserito nei commenti HTML, soluzione non ottimale dal punto di vista della sicurezza.

PHP 3.0

Data di rilascio: 6 giugno 1998
Data di fine supporto: 20 ottobre 2000

Due studenti israeliani, Zeev Suraski e Andi Gutmans, danno vita alla versione 3.0 del linguaggio partendo dal PHP/FI di Lerdorf. Successivamente riscrivono il motore del linguaggio, dando così vita alla prima versione dello Zend Engine. Il nome del linguaggio diventa definitivamente PHP (Hypertext Preprocessor).

PHP 4.0

Data di rilascio: 22 maggio 2000
Data di fine supporto: 23 giugno 2001

Questa versione offre un primo supporto alla programmazione ad oggetti. Questo consente la scrittura di programmi più robusti e sicuri ed eleva PHP al pari di altri linguaggi ad oggetti, come Perl e Python.

PHP 4.1

Data di rilascio: 10 dicembre 2001
Data di fine supporto: 12 marzo 2002

Vengono introdotte le variabili "superglobali": $_GET, $_POST, $_SESSION, etc...

PHP 4.2

Data di rilascio: 22 aprile 2002
Data di fine supporto: 6 settembre 2002

La direttiva register_globals viene disabilitata per impostazione predefinita. Ciò comporta un miglioramento in termini di sicurezza, in quanto evita la creazione automatica di variabili globali contenenti dati passati attraverso form o query string.

PHP 4.3

Data di rilascio: 27 dicembre 2002
Data di fine supporto: 31 marzo 2005

Viene introdotta l'interfaccia a linea di comando (CLI), che consente l'esecuzione di comandi dal terminale di sistema.

PHP 4.4

Data di rilascio: 11 luglio 2005 
Data di fine supporto: 7 agosto 2008

Risolto un bug di corruzione della memoria.

PHP 5.0

Data di rilascio: 13 luglio 2004
Data di fine supporto: 5 settembre 2005

PHP 5.0 esordisce con una nuova versione dell'interprete, lo Zend Engine 2.0. Viene inoltre migliorato il supporto alla programmazione ad oggetti.

PHP 5.1

Data di rilascio: 24 novembre 2005
Data di fine supporto: 24 agosto 2006

Migliorata la velocità di esecuzione rispetto alla precedente versione. Introdotta la classe PDO (PHP Data Objects), per l'interfacciamento ai database.

PHP 5.2

Data di rilascio: 2 novembre 2006
Data di fine supporto: 6 gennaio 2011

Viene introdotto il supporto nativo a JSON e abilitata di default l'estensione filter.

PHP 5.3

Data di rilascio: 30 giugno 2009
Data di fine supporto: 14 agosto 2014

Funzionalità e deprecazioni: supporto ai namespace e al late static binding, funzioni anonime, una nuova libreria per archiviare intere applicazioni (PHAR), migliorato il supporto a Windows, fileinfo in sostituzione di mime_magic per migliorare il supporto MIME, l'estensione intl per il supporto all'internazionalizzazione, deprecazione dell'estensione ereg.

PHP 5.4

Data di rilascio: 1 marzo 2012
Data di fine supporto: 3 settembre 2015

Supporto ai trait e nuova sintassi per gli array []. Miglioramenti alle funzionalità esistenti, alle performance e alle richieste di memoria.

Inoltre da questa versione è disponibile un web server integrato, che consente di eseguire PHP anche da browser, senza configurare un web server completo.

Direttive del file php.ini rimosse: register_globals, safe_mode, allow_call_time_pass_reference.

Funzioni rimosse: session_register(), session_unregister() e session_is_registered().

PHP 5.5

Data di rilascio: 20 giugno 2013
Data di fine supporto: 10 luglio 2016

Supporto ai generator, blocchi finally per la gestione delle eccezioni. Introdotta l'estensione OPCache, che migliora le prestazioni di PHP memorizzando il bytecode dello script precompilato nella memoria condivisa, eliminando la necessità di caricare e analizzare gli script ad ogni richiesta.

PHP 5.6

Data di rilascio: 28 agosto 2014
Data di fine supporto: 31 dicembre 2018

Nuove funzionalità: espressioni scalari, funzioni variadiche, argument unpacking, operatore ** per l'elevamento a potenza, estensione dell'operatore use per le funzioni e le costanti, un nuovo debugger interattivo (chiamato phpdbg) come modulo SAPI e altri piccoli miglioramenti.

PHP 6

Versione mai rilasciata. Era in programma il supporto nativo a Unicode.

PHP 7.0

Data di rilascio: 3 dicembre 2015
Data di fine supporto: 3 dicembre 2018

Nuova versione del motore PHP, Zend Engine 3 (miglioramento delle prestazioni e supporto per gli interi a 64 bit su Windows), sintassi uniforme per le variabili, aggiunta la funzione Closure::call(), operatore null coalesce, gestione del tipo di variabili in ingresso e uscita delle funzioni, operatore spaceship, classi anonime, migliore gestione delle eccezioni e una sintassi più corta per importare più classi da un namespace.

PHP 7.1

Data di rilascio: 1 dicembre 2016
Data di fine supporto: 1 dicembre 2019

Tipo di ritorno void per le funzioni, possibilità di impostare lo scope (public, private, protected) per le costanti di classe.

PHP 7.2

Data di rilascio: 30 novembre 2017
Data di fine supporto: 30 novembre 2020

Object parameter and return type hint, nuova estensione Libsodium, Abstract method overriding, possibilità di omettere i tipi di parametro per i metodi ereditati (parameter type widening).

PHP 7.3

Data di rilascio: 6 dicembre 2018
Data di fine supporto: 6 dicembre 2021

Sintassi Heredoc and Nowdoc più flessibile, supporto per l'assegnazione per riferimento in array tramite la funzione list(), supporto PCRE2, nuove funzioni hrtime() e is_countable().

PHP 7.4

Data di rilascio: 28 novembre 2019
Data di fine supporto: dicembre 2022

Introdotte le typed Properties, preloading per migliorare le prestazioni, operatore di assegnamento null coalesce, migliorata funzione openssl_random_pseudo_bytes, Weak References, FFI - Foreign Function Interface.

Per approfondire leggi PHP 7.4

PHP 8.0

Data di rilascio fine 2020 o inizi del 2021

La modifica più interessante è la compilazione Just In Time (JIT) per aumentare le prestazioni.