Come avevo promesso nel mio post di fine anno, oggi siamo qui ad iniziare il mio corso di php, che vi propongo per aiutarvi ad iniziare a programmare con questo linguaggio.
Prerequisiti per seguire questo corso
Per seguire questo corso dovrete innanzi tutto conoscere per lo meno a livello base l’html, linguaggio di visualizzazione molto semplice da imparare e da applicare. Infatti in questo corso non vedremo il codice html, dato che darò per scontato che i tag base li sappiate già.
Per chi non conosce neppure a livello base l’html, vi rimando a questo corso ben fatto, che, anche se in inglese, vi insegnerà con molta facilità le basi e non di questo comodo e utile linguaggio.
Dovrete poi avere un editor di programmazione decente. Per chi non ne ha uno, sconsiglio di utilizzare il blocco note, anche perché è veramente impossibile programmare con quest’ultimo e il codice scritto risulterebbe disordinato e incomprensibile.
Io consiglio di utilizzare uno di questi editor:
- Notepad++ -> programma disponibile solo per Windows, ma emulabile con Wine per renderlo compatibile anche per Linux
- Visual Studio Code -> programma completamente gratuito, fornito da Microsoft, compatibile su Windows, Linux e Mac
- Sublime Text 3 -> Programma che uso personalmente per programmare. Questo software è a pagamento ed è compatibile per Windows, Linux e Mac
Ovviamente ne esistono molti altri. Io vi ho consigliato quelli che conosco e che posso dirvi che sono validi.
Servirà poi avere a disposizione un server. Se non lo avete, potrete utilizzare server locali come ad esempio XAMPP programma disponibile per Windows, Linux o Mac.
In alternativa potrete aprirvi un account su Altervista, utilizzare il proprio hosting per chi già ne possiede uno o registrarvi ed usare il mio cloud SharekFile.
Come ultimo prerequisito dovrete avere un po’ di pazienza. Imparare un linguaggio di programmazione non si fa in un giorno, quindi vi consiglio di dedicare un po’ del vostro tempo per apprenderlo come si deve.
Cosa faremo in questo corso?
In questo corso vedremo il linguaggio php dal livello base, fino ad arrivare al livello avanzato.
Questo corso lo affiancherò ad un altro, dove collegheremo le nozioni imparate qui, per utilizzarle in ambito grafico. Infatti in un corso parallelo a questo vedremo l’html (sempre dando per scontato che voi sappiate le basi di quest’ultimo) utilizzato con un framework. Io utilizzerò bootstrap, un framework grafico che l’ho già presentato in questo articolo, che ti consiglio di leggere nel caso tu non l’abbia già fatto.
Detto questo possiamo iniziare
Che cos’è il php?
Per prima cosa mi sembra giusto iniziare a vedere che cosa sia questo linguaggio, quali sono i suoi punti di forza e come mai è molto usato.
Partiamo con il dire che php è un linguaggio server side. Questo termine significa “lato server” e sta ad indicare che il php viene eseguito sul server e non sul computer dell’utente. In questo modo, ogni script può funzionare tranquillamente su qualsiasi computer, in quanto anche se il pc dell’utente dovesse essere vecchio, il programma php non lo esegue il computer, ma ci pensa il server per lui.
Abbiamo nominato il termine script. Questo termine è fondamentale nella programmazione in php, perché differenzia il php da qualsiasi altro linguaggio. Un linguaggio di scripting, è un linguaggio che può essere integrato in altri linguaggi. Questo vuol dire, che ad esempio, citando il caso più diffuso, il php viene usato insieme all’html. In molti casi all’interno della pagina html, troviamo molti piccoli script php, che vanno ad ampliare le funzioni della pagina web.
Come vedremo più avanti, il fatto che il linguaggio php è di tipo scripting, lo rende uno dei linguaggi più versatili.
Il computer dell’utente non è in grado di tradurre il codice php. Se noi provassimo e ti invito a farlo, ad aprire un file con estensione .php con il tuo browser, scoprirai che quest’ultimo non lo apre. Semplicemente il browser te lo mette come download. Lo rifiuta.
Come potrete vedere da questo screen, io ho provato ad aprire un file con estensione .php, ma il browser, rifiutandolo, me lo ha messo come download.
Infatti, come spiegavo nei prerequisiti, per eseguire del codice php, sarà necessario utilizzare un server web, che abbia installato al suo interno, un componente chiamato php engine.
Che cosa sarà mai questo componente?
Il php engine è solo un componente software, che permette di far funzionare questa catena di eventi che sto per illustrarvi:
- Il computer dell’utente (che, in questo corso, definiremo con il termine client, come giusto che sia) invia una richiesta, utilizzando il router a cui è connesso, per visualizzare una determinata pagina php, che può essere ad esempio, la home page del sito del corriere della sera, per chi legge questo giornale.
- La richiesta viene inviata al server, che solitamente viene utilizzato apache, server che gira su piattaforma Linux.
- Il server cerca suo disco fisso (hard disk) la pagina desiderata e la manda al php engine
- Il php engine è un’interprete. Ovvero una figura, elettronica, che legge la pagina in questione e se non trova incomprensioni (errori sintattici) e quindi la comprende, la traduce in una pagina html, comprensibile con il browser del client. Durante questo processo (questa cosa per il momento la citiamo, ma non la approfondiamo, se non nei prossimi articoli), il php engine va prendere all’interno del database MySQL (utilizzando il linguaggio SQL, che abbiamo visto in questo corso) tutte le informazioni richieste dalla pagina che ha appena tradotto (queste informazioni possono essere, in questo caso gli articoli pubblicati all’interno del giornale). Recuperati questi dati, li integra nella pagina, nei punti richiesti dallo stesso script.
- Fatto ciò, invia il file richiesto, con estensione .html e tradotto totalmente e ovviamente in html, al server apache, che provvederà a inviare il risultato prodotto al client
- Il browser del client non farà altro che aprire questa pagina, e riportarla a video, permettendo quindi all’utente di poter leggere in questo caso, il corriere della sera
Lo screen che ho appena messo, descrive in modo grafico, quello che ho appena spiegato. Il processo contiene si molte fasi, ma non è di difficile comprensione. Questo processo viene messo in pratica quando navighiamo su internet. Grazie a questo sistema di comunicazione, possiamo avere tutti i servizi di cui oggi disponiamo.
Abbiamo quindi detto che il linguaggio php non viene eseguito nel client, ma viene eseguito sul server. Al client arriva soltanto il risultato dell’elaborazione, ovvero la nostra pagina html. Se noi con il nostro browser andassimo a cliccare su “Visualizza sorgente pagina”, noteremo che nel sorgente della pagina web aperta, in questo caso, nello screen successivo, ci sarà la home page del mio cloud, non è presente neppure un riferimento al php.
Tutto questo ha un significato molto importante per quanto riguarda la sicurezza. Dato che il php non lo prende in gestione il client, ma il server, tutti i dati importanti vengono gestiti solo dal server, e di conseguenza non sono accessibili all’utente. Inoltre, molti avranno anche capito che, tramite questo processo, non è disponibile per l’utente la visione del codice sorgente della pagina. Quindi sarà molto più difficile trovare vulnerabilità.
Ci sono però alcune pagine o alcuni siti, che assegnano un certo carico di lavoro anche al client.
Questo perché: beh è molto semplice da spiegare. Dato che un server deve rispondere a tantissime richieste contemporaneamente, non può e non ha tempo di elaborare componenti come l’interfaccia grafica, gestire le animazioni e così via. Per questo motivo esistono dei linguaggi, ad esempio il java, javascript, css, che il server non elabora. Si limita semplicemente ad inviare il sorgente in javascript così com’è al client, che penserà poi lui ad elaborare. Per questo motivo, molti siti non possono più essere visualizzati con computer molto vecchi.
Tutto questo processo di divisione dei compiti è molto importante. Questo è dato dal fatto che un programmatore web, sa che può sfruttare molta più potenza di quella che possiede. Ovvero: un programmatore web possiede un server. Quindi può contare sulle risorse di quel server. Se non gli bastano, molto semplicemente sceglie cosa far elaborare al computer dell’utente, così facendo ha la possibilità di poter realizzare programmi e pagine sempre più complicate e più complete.
In questo corso non ci concentreremo sulla parte del javascript. Però nel corso parallelo con bootstrap, vedremo di approfondire un po’ questo aspetto.
Le caratteristiche base del linguaggio
Dopo aver visto che cos’è e come funziona il php, vediamo nel lato pratico come si presenta e come viene implementato in una pagina web.
Come dicevo all’inizio, il php è un linguaggio di scripting, che si integra con altri linguaggi. Solitamente si integra con l’html in quanto, come avrai potuto capire dal funzionamento del php engine, l’html e il php sono dipendenti tra di loro. Una pagina web non esisterebbe senza html e una pagina in html non sarebbe per nulla dinamica e funzionale senza il php.
Una caratteristica molto importante di questo linguaggio è che è debolmente tipizzato.
Questa caratteristica distingue questo linguaggio da molti altri. Vediamo in cosa:
- Il php non ha delle regole sintattiche rigide.
- I tipi di variabili non hanno bisogno di essere specificati. Infatti il php engine capirà automaticamente se la variabile inserita è di tipo numerico, o di tipo booleana (vedremo nella prossima parte della guida nel dettaglio questi tipi di variabili)
- La forma sequenziale non è rigida come in altri linguaggi (successivamente vedremo di citare le tre forme principali di programmazione)
Altre caratteristiche invece rimangono uguali:
- Un programma scritto in php deve avere sempre un’inizio e una fine
- Il codice scritto deve avere una logica ben precisa
- Non ci devono essere errori sintattici. Anche se si sbaglia un solo simbolo di punteggiatura, l’intero script non funzionerà
- Non ci devono essere errori semantici: i più gravi errori semantici possono causare interruzioni dell’intero server
Approfondiamo ora gli ultimi punti che abbiamo visto
Iniziamo dal fatto che un programma scritto deve avere sempre un’inizio e una fine. Questo è dettato dal fatto che in informatica ogni operazione deve avere un’inizio, ovvero che deve iniziare, ma deve anche concludere. Non è contemplato in informatica il concetto di infinito. Prima o poi un programma deve finire. Se non finisce, è un’errore. Il problema nella programmazione lato server è che, se uno script php non dovesse funzionare correttamente in quanto esegue ciclicamente una serie di operazioni in modo infinito, l’intero server si blocca. Non è come nei computer che se un programma non funziona, il sistema operativo lo chiude, facendo però rimanere attiva la sessione.
Nel corso di questi anni tutti i provider di server e hosting, hanno limitato questo fenomeno, mettendo dei controlli sulla memoria RAM. Se ad esempio uno script usa in modo anomalo le risorse hardware, viene rimosso l’intero processo. Però diciamo che è sempre meglio evitare di scrivere codice che proprio non funziona.
Il metodo migliore nella programmazione lato server, è di provare gli script in un server di prova e poi se tutto funziona bene, caricarli dentro al server principale.
Per quanto riguarda il secondo punto, ogni programma deve avere una logica ben precisa, che varia a seconda di quello che dovrà andare a fare il programma stesso. Solitamente, quando si sviluppa un qualsiasi software, anche in linguaggi differenti dal php, è di fare in modo che l’operazione che deve svolgere il programma venga effettuata in meno tempo possibile e vengano impiegate meno righe di codice possibile. Più uno script è pesante, più il server impiegherà del tempo per eseguirlo. Più tempo impiega, meno client potrà ricevere.
Per capire meglio quanto ho scritto, ti rimando al mio articoli sugli algoritmi. Anche se nel caso degli articoli io parlo del Java, il concetto base è sempre lo stesso.
Andando a trattare gli ultimi due punti, andiamo a vedere gli errori sintattici e gli errori semantici
Andiamo a definirli:
Errori sintattici: un errore sintattico è un errore di sintassi. Essenzialmente è un errore di sintassi. Si verificano certi errori, ad esempio, quando si scrive male una parola. Se per esempio, al posto di scrivere ciao, scrivo ciiao, quest’ultima parola è un’errore di tipo sintattico. Il php engine in questo caso ci segnalerà il problema, dato che non capisce cosa deve fare e non capisce cosa voglia dire quella determinata parola.
Errori semantici: gli errori semantici sono più difficili da capire. Questo perché di per se non sono errori. Il php engine non dice nulla a riguardo. Ma è sbagliata la logica. Se ad esempio devo fare 2+2, ma per sbaglio scrivo 2 – 2, il risultato risulta sbagliato, ovviamente, ma non è un errore sintattico. Quindi per questo genere di errore c’è davvero da stare attenti.
Approfondiamo un attimo gli errori sintattici:
In informatica, nella programmazione si intende, sono molto importanti, per esempio, molti caratteri speciali, in special modo la punteggiatura. Per esempio il ; (punto e virgola) serve per terminare un’istruzione. E quindi se la si omette, l’istruzione risulterebbe infinita e quindi il php engine ce lo segnala come errore sintattico.
Per questo motivo è importante prestare attenzione a questi particolari, che vedremo più avanti, in questo corso.
Implementazione del linguaggio all’interno di una pagina html
All’interno di una pagina html è possibile integrare del codice php.
Innanzi tutto è necessario che la pagina in questione sia con estensione .php e non .html. Quindi i vari file che andremo a creare dovranno essere salvati con l’estensione .php- Se ciò non avviene, molto semplicemente il server apache non passerà lo script in elaborazione dal php engine.
All’interno del documento html, si può aprire uno script php, in qualsiasi punto, con questo simbolo:
<?php
Per chiudere lo script:
?>
All’interno ci dovranno essere tutte le istruzioni php
<?php
// istruzioni php
?>
Ciò che è scritto dopo i due simboli // è una riga di commento. Semplicemente è del testo che non verrà eseguito, ma servirà al programmatore o al team di programmatori, a ricordarsi perché è stata svolta una determinata operazione.
I commenti all’interno del codice, quindi, sono molto importanti e possono essere di grande aiuto.
Conclusioni
Direi che per oggi è meglio non proseguire oltre. Abbiamo visto già tante cose, che ci serviranno nei prossimi articoli.
Per il momento quindi concludiamo qui. Spero che come introduzione abbia trovato tutto interessante e comprensibile. Scrivi qui sotto un commento, se hai qualcosa da aggiungere o semplicemente, per fare un commento, per l’appunto, su tutto ciò che hai letto.
Con questo io chiudo e ti aspetto al mio prossimo post!