PHP, Web and Mobile development

Introduzione al PHP 4

Introduzione al linguaggio principe per la creazione dinamica di documenti HTML.

Dieci anni fa un sito web era costituito essenzialmente da semplici pagine HTML[1], i documenti erano raggiungibili tramite un indice generale e non vi era possibilità di effettuare ricerche di alcun tipo. Il programmatore era costretto a ripetere, all’interno di ogni documento HTML, gli elementi costitutivi del layout grafico del sito. Oggi, la maggior parte dei siti, soprattutto i motori di ricerca ed i siti orientati al commercio elettronico, sono caratterizzati dalla presenza di una grande quantità di informazioni in varie forme: articoli, notizie, prezzi, percentuali, dati di borsa, ecc. Queste informazioni sono organizzate all’interno di uno o più database in modo tale da essere consultabili facilmente da particolari programmi chiamati CGI (Common Gateway Interface). Il compito dei CGI é quello di fornire all’utente del sito una pagina HTML generata dinamicamente e contenente i contenuti richiesti.

Il lavoro del programmatore é quindi cambiato dalla realizzazione di un insieme eterogeneo di documenti HTML alla realizzazione di una vera é propria applicazione, utilizzata sia dagli utenti finali (i visitatori del sito), sia dagli editori del sito stesso per permettere loro di aggiungere nuovi contenuti o di editare i preesistenti.

Scrivere script CGI non é un lavoro molto complesso, presuppone però la conoscenza di numerosi protocolli, l’HTTP in primis. Inizialmente i primi CGI erano scritti in linguaggio “C” o direttamente in Shell, successivamente, all’aumentare della complessità delle funzionalità di un sito web, si é affermato sempre di più il linguaggio Perl [2]. Il Perl sebbene sia un linguaggio molto potente ha alcuni svantaggi: non é molto semplice da imparare; non é stato disegnato tenendo presente l’esigenza di accedere ai database. Questi svantaggi del Perl non sono presenti nel PHP che, al contrario, fa della sua immediatezza e del supporto ai database i suoi principali punti di forza. Questi sono solo alcuni dei motivi che hanno reso il PHP il linguaggio principe per la scrittura di documenti HTML dinamici, il PHP é un linguaggio pieno di gradite sorprese, pensato per facilitare il compito del programmatore e non per complicarlo.

Cosa é il PHP

Il PHP (Personal Home Page tools) é un linguaggio di scripting creato nel 1994 da Rasmus Lerdorf [3], appositamente disegnato per la generazione dinamica di pagine web. Il PHP é un linguaggio server-side, ovvero gira sul server web mentre il client (il browser del visitatore del sito) ne vede soltanto il risultato finale, ovvero il documento HTML. Questa premessa é d’obbligo in quanto molti potrebbero confondere il codice PHP con del codice JavaScript che, nonostante le molte similitudini, sono due linguaggi completamente diversi. Il PHP può funzionare in due modalità: come CGI, in questo caso viene compilato come un eseguibile stand-alone che può essere utilizzato da qualsiasi server web; oppure come modulo di apache [7]. Quest’ultimo caso presenta due vantaggi rispetto alla modalità CGI: maggiore velocità e minor spreco di memoria.

Come funziona il PHP

Ogni volta che un browser (Internet Explorer, Netscape o altro) richiede al server web un documento la cui estensione termina con .html, il server web legge dal proprio filesystem il file corrispondente e lo ritorna al browser senza apportare nessuna alterazione. Invece, quando viene richiesto un documento che termina con .php, .php3 oppure .phtml, il server web filtra il file letto dal filesystem attraverso l’interprete PHP prima di ritornare l’output al cliente. Vediamo il classico esempio del “Hallo World” (listato 1). Quando il PHP interpreta questa pagina lascia passare inalterati tutti i tag HTML ed esegue soltanto le istruzioni presenti tra due speciali marcatori “<?” e “?>“. Nel nostro esempio il PHP esegue la funzione echo che ha il compito di mandare la stringa “Hallo World !” in output, ovvero all’interno del documento HTML. La differenza, ed i vantaggi, tra una pagina PHP ed uno script CGI é per gli esperti palese: mentre uno script CGI deve gestire a basso livello tutti i messaggi del protocollo HTTP e mandare in output tutto il testo del documenti HTML, questo lavoro viene effettuato in maniera trasparente al programmatore da parte dell’interprete PHP. Quest’ultimo lascia il programmatore libero di includere le parti dinamiche della pagina direttamente all’interno del documento HTML, aumentando notevolmente la velocità con cui è possibile sviluppare un sito web.

Cosa si può fare con il PHP

Il PHP presenta numerose ed interessanti caratteristiche che é utile menzionare. Innanzitutto é facile da imparare, ha una sintassi molto simile ad altri linguaggi da cui prende spunto come il “C”, Java ed il Perl. Il PHP è modulare, l’interprete principale può essere esteso realizzando, in linguaggio C, ulteriori moduli da affiancare a quelli preesistenti. La dotazione di moduli per il PHP è in continua crescita soprattutto per quanto riguarda l’accesso ai database, é infatti possibile l’utilizzo dei principali database utilizzati su internet (MySQL [5], mSQL, PostgreSQL [6]) o in azienda (Oracle, Informix, Sybase, Microsoft SQL Server, supporto ODBC) ed anche database basati su singole tabelle (DBase, gdbm). Il PHP inoltre gestisce in maniera trasparente i “cookie”, l’autenticazione HTTP di utenti, la creazione e manipolazioni di immagini, la gestione dell’upload dei file tramite il tag “form”, fornisce supporto per le espressioni regolari e per numerosi protocolli (imap, ldap, smtp, snmp, ftp) utilizzati su internet. Ed infine, a partire dalla versione 4, è finalmente arrivato il supporto per le variabili di sessione.

Installare il PHP

Prima di addentrarci nella programmazione PHP sarà bene preparare il nostro ambiente di lavoro. L’installazione del PHP, al contrario di quanto detto fin ora, non é semplice come il suo utilizzo in quanto richiede un minimo di conoscenze di amministrazione di sistema. Come sempre potete seguire due strade: la compilazione del codice sorgente o l’installazione di pacchetti già pronti all’uso per la vostra distribuzione GNU/Linux preferita. Per chi usa Windows, sul sito ufficiale http://www.php.net/ è presente una versione pre-compilata del PHP per funzionare come CGI con qualsiasi server web, volendo è disponibile anche una versione pre-compilata di apache. Se decidete di installare i pacchetti ricordatevi di effettuare tutte le installazioni nella giusta sequenza. Prima va installato uno dei database supportati dal PHP (MySQL e’ consigliato), successivamente il server web Apache, quindi il pacchetto contenente il modulo principale del PHP ed infine il pacchetto specifico contenente il modulo PHP per accedere al database installato. Se decidete per la strada più tortuosa, ovvero la compilazione del codice sorgente, è da notare che non basta avere installato il compilatore C e le relative utility (gcc, make, binutils) ma sono necessarie almeno dieci librerie aggiuntive richieste dal PHP per supportare sia il vostro database preferito, sia alcuni moduli fondamentali. Questo é un ottimo motivo per desistere dall’idea di installare l’ambiente di sviluppo utilizzando il sorgente in favore dei pacchetti ufficiali. Nel caso della distribuzione Debian [8] dovete installare i pacchetti: relativi a mysql (mysql-server, mysql-client, libmysqlclient6), apache (apache, apache-common) e php (php4, php4-mysql). Ovviamente ci sono altri pacchetti meno importanti richiesti dall’installazione ma questi dovrebbero essere presumibilmente già installati sul vostro sistema (perl, awk, libc6, etc.).

Configurazione

Il PHP viene distribuito con un unico file di configurazione chiamato php.ini. Di solito questo file si trova insieme ad i file di configurazione di apache (/etc/apache/). Dopo l’installazione del PHP non è strettamente necessario modificare questo file in quanto contiene già dei ragionevoli valori di default accettabili. L’unica vera configurazione da effettuare, riguarda invece il server web che dovrebbe contenere una riga del tipo:

AddType application/x-httpd-php .php

nel file httpd.conf. Questa modifica viene effettuata automaticamente, come nel caso della distribuzione Debian, all’atto dell’installazione del pacchetto.

Testare il proprio ambiente di sviluppo

Se avete installato tutto correttamente avviate il server web con il comando

apachectl start

e provate a caricare tramite il browser la nostra pagina di test (listato 2) del PHP. Se il nostro server web contiene tutti i documenti a partire dal percorso /var/www/ dovremo creare la nostra pagina di test nel file /var/www/test.php e quindi richiamarla tramite l’URL http://localhost/test.php . La pagina di test contiene un’importante funzione del PHP, ovvero phpinfo. Questa funzione restituisce in output una serie utilissima di informazioni di backup (figura 1) il cui scopo e’ quello, appunto, di informare il programmatore sul corretto funzionamento dell’interno ambiente.

Figura 1

Conclusioni

Con questo articolo abbiamo effettuato una breve panoramica sulle problematiche relative allo sviluppo di pagine web dinamiche, del perché del successo del PHP e delle interessanti caratteristiche che offre. Infine abbiamo affrontato le problematiche per la preparazione dell’ambiente di sviluppo. Nel prossimo articolo, invece, affronteremo problematiche strettamente legate alla programmazione, addentrandoci nella sintassi del linguaggio e costruendo i primi esempi concreti, in modo tale da tastare concretamente i motivi che stanno facendo di questo linguaggio un punto di riferimento per tutti i web developer. In coclusione, sul sito della Zend Technologies [4] sono disponibili una serie di forum publici cui si puo’ rivolgere per qualsiasi problematica inerente il PHP.

Riferimenti

[1] http://www.w3c.org/

[2] http://www.perl.org/

[3] http://www.php.net/

[4] http://www.zend.com/

[5] http://www.mysql.com/

[6] http://www.postgresql.org/

[7] http://www.apache.org/

[8] http://www.it.debian.org/