Vorrei scrivere un libro sul PHP e cerco chi possa aiutarmi nella correzione delle bozze e per la pubblicazione, l'idea e di metterci i seguenti contenuti. vorrei differenziarmi dai soliti libri italiani tutti uguali tra di loro e che manifestano un'orientamento spiccatamente accademico e poco pratico. Io vorrei fare esempi pratici che da solo comprendono quello che in altri libri trovi in capitoli di costrutti elementari e difficilmente utilizzati in quel modo nella pratica.
1. Capitolo 1
Introduzione al PHP
Cenni storici
Nel 1989 Tim Berners Lee, scienziato britannico del CERN inventò il “WWW” (World Wide Web)
Nel 1993 dal CERN, nasce la prima pagina web.
Nel 1995 quando il nascente mondo del web era dominato dal prodotto FLASH di Macromedia, nota società
statunitense che all’epoca si occupava prevalentemente di grafica web, il programmatore Danese Rasmus
Lerdorf, ispirandosi al linguaggio Perl, creo il PHP/FI.
Nel 1998 Con il contributo di altri autori nasce PHP 3.0 con nuove direttive per l'uso del database.
Nel 2000 con la versione 4.0 ed il motore di interpretazione Zend, PHP inizia la sua inarrestabile corsa a
divenire il linguaggio server-side più utilizzato.
Nel 2004 con la versione 5.0 viene introdotto il motore Zen 2 il PDO per l'accesso ai database ed il supporto
alla programmazione ad oggetti.
Nel 2015, dopo circa dieci anni, venne rilasciata la versione 7.0 che tra l'altro, riscrive il sistema di gestione
della memoria ed apporta radicali cambiamenti anche concettuali al PHP, riuscendo a rivitalizzarlo ed
aggiornarlo con le nuove tecnologie in uso dell’epoca.
Nel 2020 l'attuale versione 7. 4. 9 grazie alle sue ottimizzazione anche in ambito di security e con le
implementazioni in HASH e PDO, permette a noi programmatori, di utilizzare nativamente operatività che
prima venivano implementate all'esterno.
Che cos'è PHP
PHP è un linguaggio di scripting interpretato, Web-Oriented. PHP permette di creare in modo semplice pagine
web il cui contenuto viene aggiornato dinamicamente. PHP è un linguaggio di tipo server side, in pratica lavora
su un server, dove permane avviato un servizio, gestito dal webserver, in attesa di richieste che quando arrivano
vengono processate dal parser PHP, tali richieste pervengono dal browser di un cliente (utilizzatore), che
collegandosi alla pagina PHP sollecita un'elaborazione ed una risposta in HTML che il browser del richiedente
sappia interpretare e quindi presentare sotto forma di pagina web. Se tale attività comporta la necessità di
interrogare, modificare o implementare dati da un database, PHP si occupa di tale operatività, formattando le
liste dei dati richieste, sotto forma di pagina web da presentare al cliente richiedente. PHP è l’acronimo di
(Professional Home Page). Ad oggi questo linguaggio oltre alle nascenti ispirazioni del PERL ritroviamo molte
caratteristiche proprie del C++ e Java. Va comunque precisato che a differenza dei diretti concorrenti Java ed
ASP molto legati ai rispettivi web server di riferimento e pertanto confinati nei servizi hosting che dispongono
di tali web Server, PHP è pienamente slegato dal Web Server che lo ospita ed inoltre è supportato dai più
blasonati Web Server della rete come: APACHE, IIS, Netscape, Oreilly, Candium, Xtami, ecc. Mentre il suo
2. maggiore concorrente ASP lavora quasi esclusivamente su IIS e quindi su Server Windows PHP lavora sotto
qualsiasi sistema operativo.
L'interprete PHP
PHP è un linguaggio interpretato per lo più dal motore Zend Engine 2 che si occupa di interpretare il codice
PHP in codice binario che da sempre è l'unico che viene riconosciuto dal processore e quindi dal computer , tra
punti di forza dell'interprete PHP mi piace evidenziare i seguenti:
1) PHP utilizza una gestione della Memoria semplificata che dura giusto il tempo dell'elaborazione di una
richiesta del client e la successiva risposta formattata come pagina web in HTML (in pratica frazione di
secondi).
2) l'assenza di tipicizzazione che evita al programmatore di prevedere in anticipo le variabili che
occorrono e dichiarare esplicitamente
3) Deploy estremamente semplificato, in pratica per rendere attivo un progetto basterà copiare la cartella
del progetto all'interno di una cartella del web server
4) La possibilità di avviare un processo PHP sia attraverso web server condiviso in internet o sull'intranet
aziendale oppure semplicemente dalla linea di comando del pront attraverso il CLI (comand line
interface)
5) La possibilità di gestire un nativamente funzionalità come Curl, Xml, ODBC, SOAP ecc
6) Riconoscere anche tra le righe di una pagina web HTML codice PHP racchiuso tra i tag, gestito dal
parser PHP.
7) L'indipendenza dall'ambiente sottostante del web server e del sistema operativo che lo rendono
estremamente scalabile.
8) L'essere supportato da numerosi framework di sviluppo.
9) La facile lettura del codice anche per i meno esperti.
10) La possibilità di estendere le funzionalità del linguaggio attraverso il linguaggio C.
11) Una grande comunità globale, nazionale e regionale molto attiva ed aperta a tutti.
12) Una vasta scelta di librerie di terze parti, per le più complesse problematiche esistenti.
Script Server Side
Una paginapura in HTML (paginaWebstatica) puòessere visualizzatadaqualsiasi browser.Inserendi inuna
paginaHTML codice PHPelevandolaadinamica,il serverche ospitadeve contenere oltre adunWeb Server
attivo anche un PARSER che sia in grado di elaborare il contenuto della richiesta e formattare la risposta
3. (OUTPUT), nel formato HTML. Il linguaggio PHP contiene costrutti che risultano molto famigliari ha che ha
avuto esperienze di programmazione in C. Anche se PHP riesce a dialogare tranquillamente con qualsiasi
database ha un rapporto speciale conil DBMS MySQL. Il database MySql nasce da un progettoproprietario
di MySQL AB passato poi a SUN Microsistem acquisita poi da Oracle, comunque ha mantenuto negli anni
anche lasuaformafree sottolicenza ENUGPL.Alcuni programmatorihannoproseguitounpercorsoparallelo
autonomo fondando il database Maria DB.
PHPgrazie aprecisi vincolidelsuofondatore è unsoftware completamenteliberoe copre attualmenteil 77%
dei siti in circolazione su internet.
Attualmente uso la versione 7.4.9 e la beta 7.5.0 che sto testando. Esse appartano ottime funzionalità
soprattutto in ambito di security come la protezione dei dati sensibili, crittografia a chiave pubblica, CSRF,
RBAC, Dependecy Iniecton, HEREDOC, NOWDOC, GMP, AGONZid, PCREZ, FFI.
Attendoinfuturol’annunciataversione 8.0con il compilatore JETedil nuovomeccanismodi serializzazione
degli oggetti (ottimizzato).