2.1. Introduzione. 2.2. Perche` utilizzare il PHP per

2.1. Introduzione.
La più grande difficoltà per un neofita quando deve partire da zero e’ confusione davanti ad
una miriade di soluzioni possibili immaginabili per risolvere un determinato problema. Per
creare un sito web dinamico, in giro si sente di tutto di più: HTML, CSS, PHP, MySQL,
phpMyAdmin, JEE , Java, JavaScript, Ruby, ASP .NET, Ajax, jQuery, CMS,
WordPress, Jomla , Wix, XAMPP, WAMP, MAMP ecc… Insomma la lista e’ lunga. In
questa lezione vogliamo fare chiarezza. Penso che aiutare un principiante ad orientarsi sulla
strada giusta vale più della materia stessa che si andrebbe ad insegnare.
Quali linguaggi o strumenti scegliere allora? Perche’ scegliere il PHP? perche’
scegliere MySQL? Quali sono le alternative? Quali sono le relazioni fra tutti questi
linguaggi? Quale linguaggio studiare per primo?
Eheee bella domanda!! Questa lezione risponde appunto a questi dubbi, vedremo i vantaggi
di studiare il PHP e MySQL, e tutte le altre combinazioni possibili per realizzare un sito web
decente. Scopriremo anche che scegliere il PHP non significa cestinare tutto il resto.
2.2. Perche’ utilizzare il PHP per creare siti web dinamici?
Il PHP attualmente e’ il linguaggio server-side più usato in assoluto al mondo come lo riporta
il sito w3techs nel diagramma seguente. Il vantaggio quindi di usare un linguaggio
popolare e’ facilita’ di trovare assistenza e risorse quando sei bloccato. Per esempio se
incontri un errore, probabilmente in giro sul web qualcuno avra’ avuto lo stesso problema.
Un altro vantaggio e’ che si e’ sempre in ricerca dei programmatori PHP giustamente per la
sua popolarità.. ovviamente dopo i programmatori C/C++.
Un altra cosa molto interessante e’ che, per esempio sul sito Stackoverflow (noto sito di
aiuto a vicenda fra programmatori) vi sono più di 900 mila thread fatte sul PHP, se per il
troubleshooting non trovi una risposta a quello che cerchi significa che sei gia’ quasi un
esperto e dovresti fare suggerimenti per il miglioramenti del PHP sul sito ufficiale
www.php.net.
Anche sul sito www.php.net c’e una documentazione formidabile, per qualsiasi funzione o
sintassi troverai qui spiegato il suo perche’ con molti esempi . Io chiamo questa
documentazione la bibbia del PHP. Il contenuto e’ talmente vasto che bisogna saperlo usare
come vedremo più avanti.
PHP e’ un linguaggio open source e quanto tale, ogni versione e’ creata usando gli inputs di
tutti i programmatori che lo usano, se l’implementazione di una funzione non ti piace puoi
andare nella directory dove’ definita e modificare il codice sorgente. Questo permette al
linguaggio di crescere nella direzione dettata dai diretti interessati ovvero gli utilizzatori. Sin
dalla prima versione sono stati usati vari forum per rendere pubblico il PHP in modo da
permettere agli utilizzatori di contribuire. Oggi per contribuire il sito di riferimento e’
www.php.net.
I linguaggi open source sono “gratis” quelli non open source non lo sono sempre. Per
esempio Microsoft C# e’ creato e aggiornato da Microsoft o società affiliate (Non sei
autorizzato a manomettere il codice sorgente, a volte hai sono i binari, cioe’ le funzioni gia
precompillate) Per questi linguaggi “chiusi” a differenza di quelli “open”, se c’e’ un bug, o se
e’ necessario aggiornare bisogna aspettare la risposta della società proprietaria cosa non
sempre veloce. Anche se la licenza del PHP e’ passata da GPL a PHP Licence, rimane
comunque open source e gratuito, non paghi nulla, e puoi modificare il codice sorgente come
ti pare piace. insomma come tutti i progetti open source.
In fine, i siti web famosi come Facebook, Amazon, Wikipedia e molti CMS come
WordPress, Jomla, Magento ecc.. sono basati su PHP. Poi e’ chiaro che più la
piattaforma diventa complessa, può essere necessario integrare più tecnologie insieme ma i
siti citati sopra sono basati principalmente sul PHP.
Il php e’ facile da usare a tale punto che molte aziende si diffidano di alcuni sviluppatori php
pensando avranno brutte abitudini di sviluppo visto il tempo ridotto che ci hanno impiegato
per studiare il PHP. In ogni caso si può scrivere codici “spaghetti” ovunque.
2.2.1 Il PHP non e’ senza concorrenti.
Fra i concorrenti più stretti possiamo elencare:
ASP .NET : concepito da Microsoft, sfrutta i framework .NET molto conosciuto dagli
sviluppatori C#. L’ASP .NET può essere una scelta da considerare se gia’ hai un background
nello sviluppo in ambiente Windows e sei anche pratico con Visual Studio e i framework .NET.
Non dimenticare i problemi legati al costo e alla portabilità dei tuoi progetti. Tieni conto che
il cliente finale ha bisogno di un sistema che funzioni e costa poco.
Ruby on Rails : E’ un framework che viene usato con il linguaggio Ruby e permette
anche lui di sviluppare bellissimi siti web dinamici e velocemente. Twitter e’ l’esempio di un
sito sviluppato usando quel linguaggio. Il Ruby e’ un linguaggio molto bello ma ha un costo
in termini di efficenza che non e’ paragonabile a quella del PHP. Ricorda per i tuoi progetti,
l’efficienza deve sempre essere fra i primi vincoli.
Django : Simile Ruby on Rails, ma si usa con il linguaggio Python.
Java e JSP (Java Server Pages) : chiamato in gergo “JEE” e’ una scelta piuttosto
comune nel mondo professionale, e’ più rigoroso e quindi relativamente più difficile da
studiare. Per progettare un sistema JEE ci vuole tempo e pazienza ma il risultato ottenuto e’
molto apprezzato dalle grosse aziende e molte banche per esempio Unicredit Banca. Se ci
hai fatto caso quando fai il login vedrai un indirizzo del tipo ../qualcosa.jsp
Javascript
Non e’ possibile presentare qui tutti i concorrenti quello che ho presentato da gia una idea di
quanti siano le possibilita’ di fare la stessa cosa. Si può persino usare il C/C++ ma cosa che
non ti consiglio assolutamente
2.3. Che cose MySQL?
Nella lezione introduttiva abbiamo definito cose’ un database e banalmente e’ un
“magazzino” (nel nostro caso dei file) dove custodisco tutti i miei dati. Ogni volta che avrai
bisogno degli informazioni di un utente , dovrai “interrogare” delle tabelle tabella. Può
anche capitare che nel tuo sito un nuovo utente si registra, allora devi “inserire” l’utente
nella tua tabella. Un utente può cancellarsi, e bisogna “cancellarlo” dalla banca dati. Bene,
e’ stato studiato un linguaggio apposito chiamato SQL (Structured Query Language)) che
serve agevolmente a interrogare le tabelle del database, cancellare le entrate, inserire nuovi
elementi etc.. Questo linguaggio si integra molto bene con il PHP.
MySQL pronunciato “mai ess kiu el “ e non “mai-si-quell “ e’ un DBMS ( Database
Management System ) un software open source della Oracle scritto in C e basato sul
linguaggio SQL che ha come scopo agevolare la creazione il salvataggio e la restituzione
dei dati in modo più semplice. Mette in relazione le varie tabelle che crei e molto altro.
Normalmente si dovrebbe dire un “database basato su mysql” e non “database mysql”
come molti hanno l’abitudine . MySQL non e’ una base di dati bensì un DMBS come visto
sopra per gli stessi dati posso decidere di usare MySQL, ma posso anche usare MariaDB,
oppure posgreSQL. ma per il resto del corso se vedi Database MySQL ci capiamo!
I diversi DBMS non sono sempre compatibili fra di loro!!
I DBMS possono essere visti oltre a quanto gia detto come un interfacia fra il database e
l’applicazione utente come in questo schema.
Al di la di tutte les astrazioni, vedi il database come un file tipo mydatabase.txt dove dentro
scrivi tutta la tua banca dati
2.3. Perche usare proprio MySQL ?
Di nuovo MySQL e’ open source, e molto facile da usare, non ha magari tutte le feature di
altri tool commerciali come per esempio PosgreSQL, ma questo non e’ una limitazione
perche’ finirai il tuo super-sito magari senza neanche coprire tutte le performance di MySQL.
Scegliamo MySQL perche e’ difficile riempire una nicchia gia piena anche se e’ stata
riempita male.
2.3.1 Alternative a MySQL
I concorrenti di MySQL sono tanti:
la scelta di quale database usare e’ veramente imbarazzante pero, mentre MySQL e altri
concorrenti sono opensource e gratuiti, non e’ il caso per molti altri DBMS. Possiamo nella
fattispecie citare questi che vale cmq la pena conoscene l’esistenza.
Oracle : e’ il DBMS più famoso e il piu completo e molto potente, purtroppo non e’ gratuito e
non e’ neanche meno caro questo fassi che spesso sono le imprese ad usarli massivamente
c’est le SGBD le plus célèbre, le plus complet et le plus puissant. Il est malheureusement
payant (et cher), ce qui le réserve plutôt aux entreprises qui l’utilisent déjà massivement. Il
existe cependant des versions gratuites d’Oracle, notamment pour ceux qui veulent
apprendre à s’en servir.
Microsoft SQL Server : DBMS della proprietà di Microsoft. il PHP spesso viene usato in
combinazione con MySQL cosi come Microsoft SQL Server si combina egregiamente
con l’ ASP .NET, pero si può anche fare matrimoni misti del tipoMicrosoft SQL Server con
altri linguaggi oppure il php con altri tipi di DBMS. Microsoft SQL Server e’ a
pagamento e le versioni gratuite sono limitate.
PostgreSQL : E’ un DBMS gratuito come MySQL, che propose funzionalità molto piu
avanzate pero c’ ancora molta strada da fare in particolare dispone di community meno
importante di quella di MySQL
la lista e’ ancora veramente lunga, esistono altri tipo MariaDB ecc… ma MySQl rimane in
assoluto il DBMS più utilizzato.
Perche’ ti serve una Ferrari quando devi sempre andare 50km/h?
2.4. Quali sono le alternative alla combinazione PHP e MySQL?
molte combinazioni sono possibili, come hai potuto notare al primo paragrafo di questa
lezione c’e veramente una marea di linguaggi che possono essere usati per costruire un sito,
non ci crederai ma può essere usato persino il C/C++ per fare un sito dinamico
normalmente puoi fare tutte le permutazioni che vuoi stando attento a come ogni linguaggio
comunica con una determinata base di dati. pero le combinazioni più frequenti sono ASP
.NET + SQL Server e ovviamente Java + Oracle database ecc.. insomma non sto a fare tutte
le combinazioni, prendi uno dei linguaggi tra Java, Python, Ruby, perl JavaScript e combinalo
al database di tuo interesse pero stando molto attento alle specifiche del tup progetto e alla
portabilità. non e’ un caso che noi usiamo PHP + MySQL perche e’ il caso più ricorrente,
e non ha mai deluso nessuno. ricorda dalla prima lezione che dalla seconda versione del pHP
interagiva gia con il predecessore di MySQ
2.5- Facciamo chiarezza fra tutti i diversi strumenti e linguaggi.
Di seguito diamo le definizioni di alcuni nomi ricorrenti nel monto del Web developpement e
dopo vediamo le relazioni che intercorrono fra di loro. in modo da partire con la coscienza
tranquilla onde a non pentirsi dopo 30 lezione di aver usato il php anziché il java
AJAX: Ti e’ gia forse capitato che in qualche sito web dopo aver modificato un input, se
convalidi, solo la parte della pagina interessata viene ricaricata. ajax che sta perAJAX stands
for Asynchronous JavaScript and XML serve a iniettare dati in modo asincrono senza dover
ricaricare l’intera pagina.
ASP.NET AJAX: questa e’ una libreria di Microsoft che ha come scopo di permettere agli
sviluppatori ASP.NET di fruire anche loro dei vantaggi di AJAX. i suoi metodi assomigliano a
quelli del I .NET Framework come per esempio String.Format e molti altri . si sovrappone un
po al jQuery ma entrambi possono essere usati insieme e in armonia dal momento che
ognuna delle libreria ha i sui pro e i suoi contri . ti ricordo che questa libreria e’ Client-Side e
non e’ dipendente a l’ASP .NET dunque puoi usare ASP.NET AJAX con qualsiasi tipo di
server
jQuery: E’ semplicemente una libreria di JavaScript l che mette a disposizione framwork per
facilitare lo sviluppo di applicazioni ajax po. in poche parole facilita l’uso di javascript nelle
tue applicazioni non ti dico di piu’ perche’ questo non e’ un corso di javascript fornisce una
potente selezione.
CMS. è uno strumento software, installato su un server web, il cui compito è facilitare la
gestione dei contenuti di siti web, svincolando il webmaster da conoscenze tecniche
specifiche di programmazione Web.
2.7 conclusione.
Di fronte a un dato problema non c’e mai una soluzione sempre migliore in ogni caso.. anzi
saper scegliere la tecnologia che conviene rappresenta gia quasi il 50% del successo della
applicazione.
2.8. quiz
2.9. Referenze.
2.1. Introduzione.
2.2. Perche’ utilizzare il PHP per creare siti web dinamici?
2.2.1 Il PHP non e’ senza concorrenti.
2.3. Che cose MySQL?
2.3. Perche usare proprio MySQL ?
2.3.1 Alternative a MySQL
2.4. Quali sono le alternative alla combinazione PHP e MySQL?
2.5- Facciamo chiarezza fra tutti i diversi strumenti e linguaggi.
2.7 conclusione.
2.8. quiz
2.9. Referenze.