La gente che conosco che si mette a programmare in PHP si lamenta dell’assenza delle guide valide in italiano…
In realtà non servono libroni per capire questo linguaggio… ma un po’ di introduzione generale fa sempre bene.
Cos’è PHP?
Stabiliamolo subito: “PHP è un linguaggio di programmazione di alto livello interpretato”.
Linguaggio di programmazione: semplifichiamo dicendo che il PHP è un insieme di istruzioni da eseguire.
Di alto livello: il livello in programmazione indica quanto il codice è comprensibile dagli umani: un livello alto vuol dire che è facilmente comprensibile (PHP, C++ etc…) mentre di basso livello vuol dire che è difficile da capire (Assembly etc…).
Interpretato: PHP non ha una fase di “compilazione”, cioè da PHP non si ricava un eseguibile che può essere fatto girare da solo sulla macchina, bensì PHP ha bisogno di un software chiamato interprete, che legge il PHP e lo esegue.
In realtà esistono dei compilatori, ma non è l’uso “ufficiale” di PHP.
Cosa non è PHP?
È importante capire anche cosa non è PHP.
PHP non è HTML: il PHP può mandare in output l’HTML, però come ogni linguaggio di programmazione è un linguaggio che, una volta eseguito, manda in output ciò per cui è programmato, e non il suo sorgente.
PHP non è strettamente legato al web, pur essendo la sua principale applicazione. Infatti tra gli usi possibili di PHP ci sono quello da cli o esiste il progetto PHP-GTK.
Anche se si esegue PHP da un server web, lo script rimane eseguito su un computer, pertanto il percorso che tu vedi nell’URL, non è quello reale dello script!
Ambiente
Ovvero: dove stai facendo girare PHP?
Esistono due tipi di ambiente: quello di sviluppo e quello di produzione. Il primo è quello in cui si produce il codice, il secondo è quello “di destinazione”, dove deve girare la vostra applicazione disponibile al pubblico.
Quando sviluppate è bene avere il reporting di tutti gli errori abilitato: vi faranno capire dove sbagliate e se ci saranno problemi sarete molto più veloci a capire dove sono, mentre nell’ambiente di produzione è meglio tenere gli errori disattivati, o potrebbero essere usati da gente malintenzionata.
Per cominciare a programmare vi consiglio di installarvi nel vostro computer PHP e un web server da soli: installate PHP e web server passo per passo. Su windows scegliete il php.ini-development.
Inoltre per scrivere codice un editor che offre l’evidenziamento del codice contribuisce molto. Quando si dice che si può tranquillamente usare il notepad per programmare lo si dice per fare un esempio. Su windows è molto meglio usare Notepad++, su Linux io mi trovo bene con bluefish. Quest’ultimo mi propone addirittura la documentazione delle funzioni built-in di PHP mentre le uso: se non vi ricordate i parametri che una funzione supporta vi fa risparmiare molto tempo.
Protocollo HTTP
Il principale uso di PHP è nel web, associato al protocollo HTTP.
Cosa è HTTP e a cosa serve?
Faccio questo esempio qua: è come se tu dovessi andare a chiedere all’ufficio anagrafe dei documenti e per farlo dei riempire dei moduli: questi moduli sono l’equivalente di HTTP.
Quando visiti un sito, tu dici al server cosa vuoi ottenere per mezzo di stringe di testo. Questa è la richiesta del client.
Allora il server risponde con altre stringhe di testo, chiamate header, dopodiché lascia una riga vuota e comincia il contenuto vero e proprio.
Può essere ogni tipo di contenuto: non fa alcuna differenza per il funzionamento di HTTP. Per le pagine web, per esempio, il contenuto è nel formato HTML.
Quando si usa HTTP per il web, il web-server esegue lo script prima di dare la risposta: infatti PHP può manipolare gli header a proprio piacimento e poi restituisce il contenuto.
Un errore che si commette spesso all’inizio è di dare del contenuto e poi voler scrivere dei cookie: è sbagliato perché anche i cookie sono degli header.
Consigli pratici
Tutte le funzioni built-in di PHP o delle estensioni ufficiali sono documentate sul sito PHP.net e può aiutarvi molto quando avete problemi.
Se non trovate lì, cercate sui vari motori di ricerca: qualcuno sarà sicuramente passato sui vostri errori e avrà trovato la soluzione.
Se il vostro programma non funziona, provate a togliere parti di codice e a vedere quale non funziona. Ricordatevi che var_dump, echo, print_r e die sono sempre a vostra disposizione.
Poco codice non vuol dire codice semplice: poche righe potrebbero anche significare un lavoro molto complesso.
Abituatevi a commentare il codice sin da subito: vi aiuta a pensare a ciò che volete ottenere e se è un passo veramente utile. Inoltre se modificherete il file nel futuro vi ricorderete perché avete fatto una certa azione.
Questo articolo si conclude qui: il mio obbiettivo non era fare una guida, ma solamente chiarire certi aspetti che possono aiutare nella programmazione.
19 commenti
😉
Scusa vorrei capire una cosa. Intanto grazie mille per la “guida”
Php e server sono da scaricare. Sai dirmi da dove e a cosa servono?
Poi vorrei capire una cosa. Scritto un codice php per verificare il suo corretto funzionamento cosa bisognerebbe fare? nel senso come lo eseguo quel codice?
PHP lo scarichi dal sito ufficiale di php: php.net, o per windows windows.php.net/download/ , però devi decidere la versione in base al server (thread-safe o non thread-safe).
Non esiste un solo server, ce ne sono tanti: io ti consiglio apache o nginx.
Per apache puoi seguire la guida di HTML.it (PHP su Windows/PHP su Linux), mentre per Nginx puoi seguire la mia guida per ottenere una versione portable del server: http://www.vdfn.altervista.org/2011/07/21/nginx-e-php-portable-su-windows/comments/
Il modo più veloce per testare PHP è metterlo dentro alla root del web server e poi testare…
Altrimenti puoi fare applicazioni per la linea di comando: digiti dalla CLI del tuo sistema operativo:
php miofile.php
Ovviamente con la cartella di PHP nella variabile d'ambiente PATH oppure devi scrivere l'intero percorso.
Ok grazie. Scusa un altra cosa:
codice del cavolo:
ma sapresti dirmi perchè non visualizzo niente?
Perché le variabili in PHP devono sempre essere usate col dollaro:
Nel php.ini hai impostato:
che ti aiuterebbe a trovare subito gli errori?
ahn… problema.. cos'è php.ini io ho scaricato php e apache.. xò non so da dove partire.. 😭 😭 😭 disastro!!!
Il php.ini è il file di configurazione principale di PHP.
Si trova nella directory di installazione di PHP.
Vai nella cartella e rinomini php.ini-development in php.ini e poi riavvii Apache.
Ciò ti permette di avere una configurazione ottimale per lo sviluppo del codice.
il punto è che sia apache che php sono cartelle stra piene di file.. ora cerco su internet come installare. Un 'ultima cosa. Se io salvo il codice
in un file.php e lo apro con firefox per esempio. Il browser non dovrebbe visualizzare
?
No…
Devi andare su
http://localhost/miofile.php
Con il percorso? tipo
http://localhost/C:/Users/bobu/Desktop/new.php –>nenache questo xD
o solo
http://localhost/new.php –>Non funziona…
Hai installato Apache?
Se la risposta è negativa la nuova domanda è: hai installato un altro server web?
In caso la risposta sia ancora negativa la domanda è: cosa aspetti a farlo?
Quando il web server è pronto, ti ritroverai con una cartella chiamata document root: è quella da cui http://localhost prende i file. Nel caso di apache quella di default è $cartella_di_apache/htdocs/.
Devi mettere lì il tuo file PHP.
Ennesima domanda: hai configurato il web server per funzionare con PHP?
Se non l'hai fatto gli script non funzioneranno.
risposte tutte begative 😁 da dove si parte??
Molto male…
Sei su debian? Se sì:
e sei a posto…
Se sei su windows…
Scarichi e installi: http://apache.panu.it//httpd/binaries/win32/httpd-2.2.19-win32-x86-no_ssl.msi
Poi scarichi: http://windows.php.net/downloads/releases/php-5.3.6-Win32-VC9-x86.zip
Crei la cartella php dentro C: e gli estrai lì dentro il pacchetto.
Vai in C:php e trova il file php.ini-development: rinominalo in php.ini
Poi aggiungi alla PATH C:php (visto che questa variabile ti piace tanto 😜 ).
Apri con il blocco note C:ProgrammiApache2confhttpd.conf e alla fine aggiungi:
Poi trovi “DirectoryIndex index.html” e alla fine della linea a cui si trova aggiungi index.php …
Riavvia apache, quindi vai su C:ProgrammiApache2htdocs ed elimini il file index.html.
Ci crei un file index.php con dentro questo codice:
E poi vai su http://localhost : ti si dovrebbe aprire la pagina del PHP Info.
Ho seguito tutto passo per passo.. ma non va.
Ah.. mi scusi.. funziona… mi ero dimenticato di cliccare su start.. avevo solo aperto apache ma non avevo cliccato su start-.- 👽
Scusa il triplo commento.. ma è importante..io devo cmq e sempre cercare soluzioni alternative… xD
http://bobuphpserver.altervista.org/
ovviamente ora non servirà più ☹️
C'è il tasto per eliminare gli account su altervista 😉
Secondo me ti conviene lavorare in locale…
Io è da anni ormai che lavoro sul mio computer e mi trovo molto molto bene.
Difatti i plugin se vedi sono pronti quando li uso perché faccio tutto il testing offline!
su debian
e funziona. poi i file dove li metto?
O modifichi la document root oppure in /var/www.
Però se li metti in /var/www devi darti i permessi per farlo: da root dai questi comandi:
Ovviamente parliamo di una development machine 😉