PHP: Hypertext Preprocessor Una introduzione alla programmazione lato server con PHP a cura di Cesare D'Amico <[email protected]> Pag. 1 Di che cosa parliamo? Storia del PHP Piattaforme supportate Sintassi e facilità d'uso Modelli di programmazione (procedurale ed OO) Connessione ai database Interfacce grafiche e semigrafiche Pregi e difetti Progetti promettenti Libri e link Pag. 2 Storia del PHP Rasmus Lerdorf e «Pretty Home Page» PHP/FI 2.0 PHP3 (1998) PHP oggi: PHP4 e Zend (2000-2003) Zend Engine (licenza BSD) Optimizer (chiuso ma gratuito) Prodotti Zend: Encoder, License Manager, Studio (commerciali) PHP domani: PHP5 e Zend Engine 2 (2004?) Pag. 3 Piattaforme supportate Sistemi operativi: Linux, *BSD, Solaris, HP/UX, Windows Portato da terzi su: MacOS X, Novell Netware, OS/2, RISC/OS, SGI IRIX 6.5 Server Web: Nativamente su Apache, MS IIS/PWS, Caudium, fhttpd, Netscape/iPlanet, OmniHTTPd, OReilly Website Pro, Sambar, Xitami Può funzionare su tutti i server che supportano il protocollo CGI Pag. 4 SINTASSI Sintassi simile al C Facile da imparare ma potente: Array sia associativi che indicizzati, variabili non strictly-typed foreach(), list(), define(), die() OOP: supporto limitato ma in evoluzione Ereditarietà solo singola Non supporta l'information hiding (comunque ottenibile) Sessioni Sicurezza in primo piano (array superglobal) Pag. 5 INTEGRAZIONE CON I DATABASE Connessione molto semplice Moltissimi database supportati: Oracle, MS SQL Server, IBM DB2, Sybase, MySQL, PostgreSQL, tutti quelli che hanno un driver ODBC (anche su Linux/UNIX) e molti altri Connessioni persistenti Pag. 6 ESTENSIONI API pubblica: tutti possono programmare una propria estensione Sistema modulare: permette di aggiungere nuove funzionalità senza intaccare il cuore del sistema Molte estensioni: connessione ai database, sistemi per il pagamento online, JAVA, email, immagini on-the-fly PEAR: PHP Extension and Application Repository Interfacce grafiche e semi-grafiche con PHP: PHP-GTK e ncurses Pag. 7 PUNTI DI FORZA... Veloce Affidabile Completo Interpretato Integrato con apache Nelle ultime versioni è più difficile creare codice insicuro Pag. 8 ...E LIMITI DEL PHP Mancanza di una interfaccia comune per la connessione ai database È facile creare codice "sporco" di HTML Interpretato Supporto alla programmazione OO non proprio allo stato dell'arte (grossi miglioramenti con PHP5) Pag. 9 PROGETTI Zend Engine 2: ereditarietà multipla, variabili private e statiche (nelle classi), gestione delle eccezioni SRM - gestore della persistenza Smarty - template engine ADODB - database layer (anche PEAR::DB) Cache: APC (GPL), ionCube PHPAccelerator (licenza non specificata, gratuito), AlberT-cache (GPL), Turck MMCache for PHP (GPL), AfterBurner (LGPL) Encoder: ionCube Encoder (commerciale) Questi progetti vanno a colmare alcune lacune del php in maniera elegante ed efficiente Pag. 10 UTILIZZO NEL MONDO Installato in quasi 14 milioni di domini e in più di 1,3 milioni di IP a Settembre 2003. È il modulo per Apache più installato in assoluto. Fonte: Netcraft (http://www.netcraft.com/Survey) Pag. 11 CHI USA PHP? Yahoo! (insieme a PHPA: Rasmus Lerdorf lavora per loro) Lufthansa.com (6 mln di visitatori al giorno) Indy500.com (2,5 mln accessi/giorno a Maggio 2002) Freshmeat.net fast (per il motore di ricerca alltheweb.com) EasyDNS Pag. 12 WEBOGRAFIA / BIBLIOGRAFIA ziobudda.net, phpscript.it, programmazione.it, html.it la famiglia di siti di php.net zend.com, phpbuilder.com, php.weblogs.com, hotscripts.com, php.faqts.com, codewalkers.com Libri interessanti (dal più semplice al più avanzato): PHP 4 Guida per lo sviluppatore (Hoepli) Sviluppare applicazioni per database con MySQL/PHP (Apogeo) PHP Soluzioni professionali per lo sviluppatore (Apogeo) PHP 4.0 applicazioni Web (Addison Wesley) Pag. 13