Imparare PHP, cosa ti suggerisco

Imparare PHP è semplice per chi arriva con una base di qualsiasi linguaggio C like.

Infatti se a quella sintassi togli la tipizzazione e metti il $ davanti al nome delle variabili riesci velocemente a produrre i tuoi primi script PHP. Fatto sta che tra scrivere uno script/programma e sapere cosa stai facendo, il passo è complesso.  Per imparare PHP i passaggi chiave secondo me ci sono e sono questi:

  1. Installare il sistema LAMP da soli
  2. Scrivere il primo script e capire cosa succede alla sua esecuzione
  3. Imparare a dividere HTML e PHP
  4. Inventare il proprio sistema di templating
  5. Usare un sistema di templating “vero”
  6. Scrivere il proprio framework
  7. Buttare via il proprio framework e imparare uno di quelli seri

Andiamo nel dettaglio?

Installare il sistema LAMP da soli

Fermo restando che se sviluppate applicazioni web un client windows (anche in macchina virtuale) vi serve, perché IE7 è ancora largamente usato,  dovete iniziare a prendere familiarità con il sistema linux. Un po’ perché LAMP è lo standard di fatto, un po’ perché i vari sistemi di installazione semplice su  windows son mezze ciofeche che al crescere della complessità delle applicazioni vi obbligano a workaround pazzeschi. Inoltre PECL e PEAR sono strumenti utili che sotto linux hanno la massima espressione.

Configurare APACHE è importantissimo, vi permette di imparare a gestire tra l’altro le aree protette e gli hostname. Hostname che vi permetteranno di poter sviluppare su http://ilmiosito invece che http://ipdisviluppo/ilmiosito .

Inoltre è opportuno imparare l’installazione di MySQL e in dettaglio capire la differenza tra socket localhost e 127.0.0.1, i socket, la posizione delle cartelle e la divisione dei db in filesystem.

Scrivere il primo script e capire cosa succede alla sua esecuzione

Se state leggendo qui, probabilmente lo avete già scritto ed eseguito. Ma dopo averlo fatto vi siete chiesti cosa succede? Il codice viene tradotto? Chi lo esegue? Dove? Quanta è la memoria assegnata? C’è un modo per eseguirlo fuori dall’ambiente server? Qual’è la dinamica client, server e quando entra in gioco PHP?  Ad esempio per quest’ultima domanda, alcuni anche dopo anni di programmazione PHP continuano a pensare che questo codice:

prevede che faiQualcosa() in un opportuna configurazione LAMP non venga eseguita. Ecco datevi delle risposte e cercate di verificarle.

Imparare a dividere HTML e PHP

Con PHP ad esempio possiamo generare il codice HTML di una tabella di dati. Ottimo. Cosa succede però se inseriamo ad esempio estrazione dei dati da DB, logica e visualizzazione tutto insieme? Semplice: il codice diventa illeggibile.

Facciamo un esempio:

Non abbiate paura di dire che questo codice fa schifo. Perché oltre all’overhead dovuto alla gestione delle stringhe il codice diventa difficilmente mantenibile. La separazione del codice ad esempio può in un primo momento anche costringerci a scrivere di più ma sicuramente ci aiuterà nel mantenere l’applicazione:

(la discussione sugli short tags la lascio ad un altro articolo)

Inventare il proprio sistema di templating

Ora che separare HTML e PHP è diventato per voi importante, è opportuno trovare un modo elegante per separare le due cose anche fisicamente: un file PHP per la gestione dei dati e uno HTML per la visualizzazione. Un metodo veloce per creare il proprio templating system è stabilire dei segna posti, costruire un sistema per passare i dati alla pagina html e così via. Inoltre può essere utile pensare ad una eventuale compilazione del codice per rendere più veloce la generazione dell’HTML e anche al caching della pagina per evitare di generarla da zero tutte le volte e così via.

Usare un sistema di templating “vero”

Vi starete chiedendo perché? Non metto in dubbio che potreste essere riusciti a scrivere il miglior template system del mondo, con un sistema di caching, compilazione (da pseudocodice html a codice), intercambiabile a seconda degli ambienti etc. Ma cosa succederebbe se un giorno fosse introdotto un costrutto PHP che renderebbe più veloce del 5% l’esecuzione del sistema? Dovreste riscrivere tutto il vostro sistema di template. Inoltre siete i soli ad utlizzare un prodotto, e siete i soli a testarlo e debuggarlo. Perdere tempo in questo significa perdere tempo nello sviluppo dell’applicazione principale. In rete trovate comunità che gestiscono ottimi sistemi di templating come Smarty che vi permetteranno di incentrarvi sull’applicazione e non sul come gestire la sua visualizzazione. Dateci un occhio, e provatene qualcuno.

Non ne farete più a meno.

Scrivere il proprio framework

A questo punto avrete già sviluppato qualche applicazione, e i vostri file: functions.php e la cartella classes saranno pieni di tanto codice ri utilizzabile per tutti i vostri nuovi progetti.  Infatti a questo punto avrete scoperto che la cosa peggiore per un programmatore è il dover riscoprire tutte le volte l’acqua calda. Bene. Pensate a una struttura del sistema che vi permetta di non dover per ogni script scrivere lo stesso codice. Che vi permetta il caricamento automatico delle classi, la gestione ordinata delle varie routine,  la creazione automatica delle variabili di configurazione e dei connettori al db. Vi gestica il routing dei path del sito e la gestione automatica del sistema di template. Così facendo avrete il vostro piccolo sistema framework!

Buttare via il vostro framework e imparate uno di quelli seri

Leggendo e studiando in giro vi accorgerete che esistono dei sistemi framework MVC (zend framework, symphony etc), vi verrà voglia di provarli e ci batterete sopra la testa molte volte. Finché un giorno trovata dimestichezza scoprirete che il vostro sistema framework mancava di tantissime funzioni che altri avevano già sviluppato per voi. Questo significa che potrete semplicemente concentrarvi sul core dell’applicazione migliorandone la velocità di sviluppo, e il mantenimento.

Per concludere

Non voglio che questa sia una bibbia da seguire, ognuno ha il diritto di seguire le sue strade. Io grazie a diversi amici ho potuto affrontare questi temi più o meno in questo ordine e credo di essermi divertito parecchio col PHP. Vi auguro in ogni caso di divertirvi, perché nel momento in cui un linguaggio di programmazione inizia a darvi fastidio, potete sempre lanciarvi su un altro. E di linguaggi di programmazione ne è pieno il web!

Un pensiero su “Imparare PHP, cosa ti suggerisco

  1. Pingback: PHP short tags, qualche appunto - Marco Tabucchi

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *