Che cos’è PHP e come funziona: introduzione al linguaggio

PHP è un linguaggio di programmazione interpretato server-side, general-purpose e di alto livello molto utilizzato per realizzare siti e applicazioni web di vario tipo e con livelli di complessità anche elevati.

Originariamente l’acronimo PHP stava a indicare le seguenti parole: Personal Home Page. Solo in seguito l’acronimo prese la serie di parole Hypertext PreProcessor o preprocessore di ipertesti.

Attualmente PHP è un linguaggio molto utilizzato: il 77.4% di tutti i siti web online lo utilizza.

Tra questi siti troviamo anche CMS molto famosi e siti popolari tra blog, siti aziendali, social networks, forum, web applications, ecommerce e altro.

Ma vediamo questi e molti altri punti nello specifico.

Chi è il fondatore di PHP e un po’ di storia

PHP è nato nel 1984. Il suo creatore è Rasmus Lerdof, un programmatore danese-canadese. All’inizio PHP era una raccolta di script CGI scritti in C che permettevano di gestire pagine web e restituirle all’utente finale.

Come dicevo nell’introduzione, l’acronimo PHP all’inizio non stava per le parole che conosciamo oggi ma rappresentava le parole “Personal Home Page”.

In seguito Rasmus estese e riformulò PHP sempre in C. Apportò numerose aggiunte tra cui il supporto a mSQL e la possibilità di implementare PHP in HTML in modo da semplificare ancora di più la realizzazione di pagine web dinamiche e renderle più performanti.

In quel momento il linguaggio era conosciuto come PHP/FI, dove FI sta per form interpreter.

Nel 1997 si stimava che ben 50.000 siti web utilizzassero PHP come linguaggio server-side.

PHP 3.x

  • Il linguaggio inizio a godere di una buona popolarità e iniziavano a spuntare i primi progetti open source.
  • Zeev Suraski e Andi Gutmans, due giovani programmatori, notarono la popolarità di PHP e decisero di collaborare con Rasmus allo sviluppo di PHP 3.0 il cui acronimo assunse il significato di “Hypertext PreProcessor”.
  • Con questa versione nasce il Zend Engine, il nome deriva dall’unione e dalla contrazione dei nomi dei programmatori.
  • A questo punto il linguaggio aveva raggiunto un buon livello di estensibilità, la possibilità di connettersi a database e vennero gettate la basi per la programmazione orientata oggetti.
  • Nel 1997 PHP era installato sul 10% dei web server mondiali.

PHP 4.x

  • Il suo cuore è Zend Engine 1, il primissimo engine di PHP, apparso per la prima volta nel 1999.
  • Questa versione venne lanciata nel 2000 e divenne un linguaggio sufficientemente maturo e completo da poter competere con linguaggi lato server come, ad esempio, ASP di Microsoft.
  • Iniziò a essere utilizzato su larga scala e su progetti sempre più complessi e ambiziosi e prevedeva numerose migliorie tra sicurezza, performance e funzionalità.
  • A partire dagli anni 2000 la popolarità di questo linguaggio inizia a scalare grazie al suo miglioramento e alla sua flessibilità:
    • Nel 2001 erano più di 1 milione i siti che utilizzavano questo linguaggio.
    • Nel 2002 più del 45% dei server Apache utilizzava PHP.
    • Nel 2004 è stato uno dei linguaggi portanti di Facebook.
    • Nel 2005 la configurazione LAMP (Linux, Apache, MySQL e PHP) superava il 50% di utilizzo tra tutti i server nel mondo.

PHP 5.x

PHP 7.x

PHP 8.x

Clicca qui per leggere la storia completa di PHP.

Caratteristiche fondamentali di PHP

Al giorno d’oggi, è possibile definire PHP con tantissimi termini contemporaneamente.

Affrontiamo tutte le sfaccettature di questo linguaggio paragrafo per paragrafo.

PHP è un linguaggio interpretato di alto livello

PHP è un linguaggio di alto livello interpretato. Questo significa che il codice sorgente PHP deve essere convertito in linguaggio macchina per far si che il processore lo esegui.

Questa conversione viene eseguita da un programma chiamato interprete, nel caso di PHP abbiamo Zend Engine. Questo “motore” si occuperà di tradurre di volta in volta il codice in linguaggio macchina.

È anche un linguaggio di alto livello. Questo significa che il linguaggio è di facile comprensione per gli esseri umani, di conseguenza è facile impararlo in breve e scriverlo per realizzare software funzionanti.

Nei linguaggi di alto livello è presente un alto grado di astrazione che rende questi linguaggi simile a quello umano in inglese. Sono presenti molte funzioni pre-costruite che semplificano lo sviluppo software.

La sintassi diventa di facile stesura per cui non richiede particolari accortezze o conoscenze in ambito informatico (architettura, gestione della memoria ecc.).

PHP è un linguaggio general-purpose

Un linguaggio general-purpose è tale quando hai la possibilità di svilupparci varie tipologie di applicazioni: questo è il caso di PHP.

Mentre un linguaggio come SQL è un linguaggio domain-specific: puoi utilizzarlo solo per uno scopo specifico. In questo caso, SQL puoi utilizzarlo solo per effettuare query a database relazionali.

PHP è un linguaggio cross-platform

È supportato da sistemi operativi come Linux, MacOS e Windows.

Puoi usarlo sui più importanti web servers come NGINX, Apache e OpenBSD.

Parlando di database non è limitato soltanto a MySQL, ma puoi interfacciarti con PostgreSQL, MSSQL, db2, Oracle Database e MongoDB.

Inoltre alcuni cloud supportano PHP come Amazon AWS e Azure di Microsoft.

Questo linguaggio non è solo limitato a processare pagine HTML, ma ha anche dei supporti per lavorare con formati PDF, JPEG, GIF e PNG.

PHP è un linguaggio multi-paradigma

Con PHP puoi programmare a oggetti (PHP OOP o Object Oriented Programming PHP) sfruttando un’ambiente ricco di possibilità.

Oppure puoi programmare seguendo lo stile funzionale, imperativo o procedurale.

PHP è un linguaggio server-side

Javascript è un linguaggio client-side. Significa che tutti gli script vengono eseguiti sul browser dell’utente.

Al contrario, PHP è un linguaggio server-side. Questo significa che il codice viene eseguito sul server a seguito di una richiesta dell’utente per o su una determinata pagina web.

Ad esempio, connettendoti sul mio sito michelemincone.com invii una richiesta HTTP al mio server di tipo GET. In seguito il server ti risponderà inviandoti la pagina web HTML desiderata.

È importante sapere che tutto il codice PHP viene eseguito prima che la pagina in questione ti sarà inviata per elaborarla.

PHP è un linguaggio a bassa tipizzazione. Infatti non c’è bisogno di dichiarare il tipo di dato prima di dare vita a una variabile specificando se essa è un numero, una stringa, un array o altro.

Questo significa che il tipo di dato può cambiare con l’esecuzione del programma.

Con le ultime versioni è stata introdotta la possibilità di indicare i tipi di dato prima di dichiarare una variabile, per i parametri e i valori di ritorno per le funzioni e questo anche per metodi e proprietà per la programmazione a oggetti.

Queste pratiche permettono ai nostri programmi PHP di essere più robusti e ci danno una maggiore sensazione di controllo e di ordine.

Statistiche, utilizzo e alcune informazioni su PHP

Come dicevo prima, l’utilizzo stimato di PHP come linguaggio lato server tra tutti i siti presenti sul web è del 77.4%. Dobbiamo considerare che questo linguaggio è presente sul mercato dal 1994 e quindi ha una vita di più di 25 anni.

In tutto questo tempo PHP ha avuto modo di consolidarsi sempre di più, versione dopo versione, e sempre più persone e aziende hanno iniziato a utilizzarlo.

Col tempo i livelli di performance e sicurezza di questo linguaggio sono aumentati così come sono aumentate le persone della community di PHP e coloro che realizzano e aggiornano framework (es. Laravel) e librerie basati su di esso.

Tutto questo ha portato PHP ad assicurarsi il posto come linguaggio leader e popolare lato server per la maggioranza delle applicazioni web, anche se all’inizio veniva molto criticato per vari motivi.

L’influenza e l’utilizzo di PHP sono stati amplificati anche da CMS molto famosi che lo utilizzano nel loro core come: WordPress, Magento, Drupal e Joomla.

Nello specifico WordPress.org, da non confondere con WordPress.com, ha dato una bella spinta a PHP facendolo diventare estremamente popolare.

Da questo CMS è nato un vero e proprio mercato molto profittevole basato su sviluppatori WordPress che realizzano temi e plugin su misura sviluppando in PHP (in combinazione con Javascript, CSS3 e HTML5 naturalmente).

Sono nate aziende che hanno scritto plugin e temi in questi linguaggi (PHP, JS, CSS e HTML) per WordPress che poi hanno fatto la fortuna.

Alcuni esempi sono Elementor, Advanced Custom Fields, Beaver Builder, WP All Import e moltissimi altri.

Per non parlare delle numerosissime agenzie di sviluppo web e web design con una buona parte di clienti che utilizzano WordPress per il proprio sito.

Cosa puoi realizzare con PHP

Grazie a PHP puoi realizzare semplici o complessi siti web, blog, forum, portali, eCommerce, applicazioni web, sistemi di gestione contenuti (CMS) e sistemi di gestione delle relazioni col cliente (CRM).

Nello specifico con PHP puoi realizzare tutte queste funzionalità:

  • dinamizzare pagine HTML
  • lavorare con AJAX sfruttando PHP per creare pagine interattive
  • scrivere, aggiornare, creare e eleminare file sul web server
  • destrutturare in array o creare file JSON
  • validare moduli di contatto
  • creare sistemi di registrazione, login, gestione delle sessioni e dei cookie
  • implementare servizi esterni tramite API
  • collegarti a tantissime tipologie di database e scrivere al loro interno
  • inviare email
  • upload di file
  • ottenere le informazioni del web server tramite superglobal
  • (e molto altro)

Inoltre PHP ha due campi di applicazione:

  • Server-side scripting: per realizzare applicazioni web o altre tipologie di siti
  • Command-line scripting: puoi eseguire PHP dal terminale per, ad esempio, inviare email

Come funziona PHP

Ecco una breve illustrazione di come funziona PHP:

come funziona il linguaggio di programmazione PHP su un web server

Seguendo l’immagine:

  • 1) Tramite il tuo browser (client) ti connetti al mio sito (michelemincone.com). Connettendoti esegui una richiesta al mio server di tipo GET per la home page (index.php).
  • 2) Il web server, che può basarsi su apache o nginx, elabora la tua richiesta. Il codice PHP viene eseguito, per la pagina index.php, dallo Zend Engine per elaborare la pagina HTML.
  • 3) Il web server risponde inviando la pagina HTML al browser per fartela visualizzare.

Per capire meglio il meccanismo descritto nell’immagine è bene conoscere la comunicazione HTTP, un pò di PHP e le basi dei web server.

Zend Engine: l’interprete PHP

Zend Engine è l’interprete che converte il codice sorgente PHP in codice macchina.

L’interprete carica prima lo script PHP in memoria, lo converte in zend opcodes, quest’ultimi vengono eseguiti per generare la pagina HTML da inviare al browser. Infine la memoria viene liberata.

Leggi il mio articolo su Zend Engine >

Altre caratteristiche del linguaggio PHP

Altre caratteristiche del linguaggio PHP:

Esempio di codice PHP

Possiamo scrivere del codice in PHP in un file con estensione omonima ‘file.php‘.

Per poter scrivere del codice PHP utilizzo il tag di apertura <?php e poi definisco una variabile con il simbolo del dollaro ($) e poi un nome.

In seguito mostro il suo contenuto con il costrutto echo.

Infine chiudo il codice con ?>.

<?php

$nome = "Michele";

echo $nome;

?>

Risultato visitando la pagina web:

Michele