Storia di PHP

PHP Tools, FI, Construction Kit e PHP/FI

PHP come è conosciuto oggi è in realtà il successore di un prodotto chiamato PHP/FI. Creato nel 1994 da Rasmus Lerdorf, la primissima incarnazione di PHP era un semplice insieme di binari Common Gateway Interface (CGI) scritti nel linguaggio di programmazione C. Originariamente usato per tracciare le visite al suo curriculum online, chiamò la suite di script "Personal Home Page Tools", più frequentemente riferito come "PHP Tools". Col tempo, fu desiderata più funzionalità, e Rasmus riscrisse PHP Tools, producendo un'implementazione molto più grande e ricca. Questo nuovo modello era capace di interazione con database e altro, fornendo un framework sul quale gli utenti potevano sviluppare semplici applicazioni web dinamiche come guestbook. Nel giugno 1995, Rasmus » rilasciò il codice sorgente di PHP Tools al pubblico, il che permise agli sviluppatori di usarlo come ritenevano opportuno. Questo permise anche - e incoraggiò - gli utenti a fornire correzioni per bug nel codice, e a migliorarlo in generale.

Nel settembre di quell'anno, Rasmus espanse PHP e - per un breve periodo - abbandonò effettivamente il nome PHP. Ora riferendosi agli strumenti come FI (abbreviazione di "Forms Interpreter"), la nuova implementazione includeva alcune delle funzionalità di base di PHP come lo conosciamo oggi. Aveva variabili simili a Perl, interpretazione automatica delle variabili dei form, e sintassi incorporata in HTML. La sintassi stessa era simile a quella di Perl, anche se molto più limitata, semplice, e un po' incoerente. Infatti, per incorporare il codice in un file HTML, gli sviluppatori dovevano usare commenti HTML. Sebbene questo metodo non fu del tutto ben accolto, FI continuò a godere di crescita e accettazione come strumento CGI --- ma ancora non proprio come un linguaggio. Tuttavia, questo iniziò a cambiare il mese seguente; nell'ottobre 1995, Rasmus rilasciò una riscrittura completa del codice. Riportando il nome PHP, fu ora (brevemente) chiamato "Personal Home Page Construction Kit", e fu la prima release a vantare quello che era, all'epoca, considerato un'interfaccia di scripting avanzata. Il linguaggio fu deliberatamente progettato per assomigliare a C nella struttura, rendendolo una facile adozione per sviluppatori familiari con C, Perl e linguaggi simili. Essendo stato finora limitato a sistemi UNIX e conformi a POSIX, si stava esplorando il potenziale per un'implementazione Windows NT.

Il codice subì un'altra revisione completa, e nell'aprile 1996, combinando i nomi delle release passate, Rasmus introdusse PHP/FI. Questa implementazione di seconda generazione iniziò a far evolvere veramente PHP da una suite di strumenti a un linguaggio di programmazione a sé stante. Includeva supporto integrato per database DBM, mSQL e Postgres95, cookie, supporto per funzioni definite dall'utente, e molto altro. Quel giugno, PHP/FI ricevette lo status di versione 2.0. Un fatto interessante su questo, tuttavia, è che c'era solo una singola versione completa di PHP 2.0. Quando finalmente si laureò dallo status beta nel novembre 1997, il motore di parsing sottostante era già in completa riscrittura.

Sebbene abbia avuto una breve vita di sviluppo, continuò a godere di una crescente popolarità nel mondo ancora giovane dello sviluppo web. Nel 1997 e 1998, PHP/FI aveva un seguito di diverse migliaia di utenti in tutto il mondo. Un sondaggio Netcraft di maggio 1998 indicava che quasi 60.000 domini riportavano header contenenti "PHP", indicando che il server host lo aveva effettivamente installato. Questo numero equivaleva a circa l'1% di tutti i domini su Internet all'epoca. Nonostante queste cifre impressionanti, la maturazione di PHP/FI era destinata a limitazioni; mentre c'erano diversi contributori minori, era ancora principalmente sviluppato da un singolo individuo.

Example #1 Esempio di codice PHP/FI

<!--include /text/header.html-->

<!--getenv HTTP_USER_AGENT-->
<!--ifsubstr $exec_result Mozilla-->
  Hey, you are using Netscape!<p>
<!--endif-->

<!--sql database select * from table where user='$username'-->
<!--ifless $numentries 1-->
  Sorry, that record does not exist<p>
<!--endif exit-->
  Welcome <!--$user-->!<p>
  You have <!--$index:0--> credits left in your account.<p>

<!--include /text/footer.html-->

PHP 3

PHP 3.0 fu la prima versione che assomigliava da vicino a PHP come esiste oggi. Trovando PHP/FI 2.0 ancora inefficiente e carente delle funzionalità necessarie per alimentare un'applicazione eCommerce che stavano sviluppando per un progetto universitario, Andi Gutmans e Zeev Suraski di Tel Aviv, Israele, iniziarono un'altra completa riscrittura del parser sottostante nel 1997. Avvicinandosi a Rasmus online, discussero vari aspetti dell'implementazione corrente e del loro risviluppo di PHP. In uno sforzo per migliorare il motore e iniziare a costruire sulla base utenti esistente di PHP/FI, Andi, Rasmus e Zeev decisero di collaborare nello sviluppo di un nuovo linguaggio di programmazione indipendente. Questo linguaggio interamente nuovo fu rilasciato con un nuovo nome, che rimosse l'implicazione dell'uso personale limitato che il nome PHP/FI 2.0 conteneva. Fu rinominato semplicemente 'PHP', con il significato che divenne un acronimo ricorsivo - PHP: Hypertext Preprocessor.

Uno dei maggiori punti di forza di PHP 3.0 erano le sue potenti funzionalità di estensibilità. Oltre a fornire agli utenti finali un'interfaccia matura per database multipli, protocolli e API, la facilità di estendere il linguaggio stesso attirò dozzine di sviluppatori che inviarono una varietà di moduli. Probabilmente, questa fu la chiave del tremendo successo di PHP 3.0. Altre funzionalità chiave introdotte in PHP 3.0 includevano il supporto per la programmazione orientata agli oggetti e una sintassi del linguaggio molto più potente e coerente.

Nel giugno 1998, con molti nuovi sviluppatori da tutto il mondo che si univano allo sforzo, PHP 3.0 fu annunciato dal nuovo PHP Development Team come il successore ufficiale di PHP/FI 2.0. Lo sviluppo attivo di PHP/FI 2.0, che era praticamente cessato a novembre dell'anno precedente, fu ora ufficialmente terminato. Dopo circa nove mesi di test pubblico aperto, quando arrivò l'annuncio del rilascio ufficiale di PHP 3.0, era già installato su oltre 70.000 domini in tutto il mondo, e non era più limitato a sistemi operativi conformi a POSIX. Una quota relativamente piccola di domini che riportavano PHP come installato erano ospitati su server che eseguivano Windows 95, 98 e NT, e Macintosh. Al suo picco, PHP 3.0 era installato su circa il 10% dei server web su Internet.

PHP 4

Nell'inverno del 1998, poco dopo il rilascio ufficiale di PHP 3.0, Andi Gutmans e Zeev Suraski iniziarono a lavorare su una riscrittura del core di PHP. Gli obiettivi di progettazione erano migliorare le prestazioni delle applicazioni complesse e migliorare la modularità del codice base di PHP. Tali applicazioni furono rese possibili dalle nuove funzionalità di PHP 3.0 e dal supporto per un'ampia varietà di database e API di terze parti, ma PHP 3.0 non era progettato per gestire tali applicazioni complesse in modo efficiente.

Il nuovo motore, chiamato 'Zend Engine' (composto dai loro nomi, Zeev e Andi), raggiunse con successo questi obiettivi di progettazione, e fu introdotto per la prima volta a metà 1999. PHP 4.0, basato su questo motore e accoppiato con un'ampia gamma di nuove funzionalità aggiuntive, fu ufficialmente rilasciato nel maggio 2000, quasi due anni dopo il suo predecessore. Oltre alle prestazioni molto migliorate di questa versione, PHP 4.0 includeva altre funzionalità chiave come il supporto per molti più server web, sessioni HTTP, buffering dell'output, modi più sicuri di gestire l'input degli utenti e diversi nuovi costrutti del linguaggio.

PHP 5

PHP 5 fu rilasciato nel luglio 2004 dopo un lungo sviluppo e diversi pre-rilasci. È principalmente guidato dal suo core, lo Zend Engine 2.0 con un nuovo modello a oggetti e dozzine di altre nuove funzionalità.

Il team di sviluppo di PHP include dozzine di sviluppatori, così come dozzine di altri che lavorano su progetti correlati a PHP e di supporto, come PEAR, PECL e documentazione, e un'infrastruttura di rete sottostante di ben oltre cento singoli server web su sei dei sette continenti del mondo. Sebbene sia solo una stima basata su statistiche degli anni precedenti, è sicuro presumere che PHP sia ora installato su decine o forse centinaia di milioni di domini in tutto il mondo.

PHP 6

Il piano per PHP 6 era di includere un supporto profondo per Unicode nel motore e nel linguaggio. Questo lavoro fu poi abbandonato, ma altre funzionalità che erano state previste per PHP 6 furono invece incorporate in PHP 5.3 (namespace) e PHP 5.4 (trait, sintassi array "corta").

PHP 7

PHP 7.0 fu rilasciato nel 2015, e presentava un'altra versione principale del core, Zend Engine 3.0, che includeva significativi miglioramenti delle prestazioni (fino a due volte più veloce di PHP 5.6) e dell'uso della memoria, supporto coerente a 64 bit, miglioramenti alle eccezioni, un generatore di numeri casuali sicuro, l' operatore null coalescing (??), classi anonime, e altre funzionalità.

Le release successive della serie PHP 7 introdussero più funzionalità del linguaggio come la sintassi list corta (7.1), dichiarazione di tipo per parametri oggetto e valori di ritorno (7.2), una nuova sintassi flessibile per heredoc e nowdoc (7.3), proprietà tipizzate (7.4), e una nuova interfaccia per funzioni esterne (7.4).

PHP 8

Rilasciato per la prima volta nel 2020, PHP 8.0 fu un altro importante aggiornamento del linguaggio PHP. Conteneva molte nuove funzionalità e ottimizzazioni tra cui argomenti con nome, tipi union, attributi, promozione delle proprietà nel costruttore, espressioni match, l'operatore nullsafe (?->), un nuovo compilatore JIT ottimizzante, e miglioramenti nel sistema dei tipi, nella gestione degli errori e nella coerenza.

Le release successive della serie PHP 8 introdussero nuove funzionalità del linguaggio tra cui enumerazioni (8.1), fiber (8.1), classi readonly (8.2), tipi in Forma Normale Disgiuntiva (DNF) (8.2), e costanti di classe tipizzate (8.3).

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top