Lavorare modularmente con php

Ebbene sì ho deciso di scrivere in Italiano, almeno per questa volta. Ho anche deciso di cosa farmene di questo blog: Diffondo il mio sapere! (anche perché dei cavoli miei non se ne frega nessuno e poi Facebook ce l’ho già!)
Come potete vedere dalla mia descrizione sono un informatico con la passione per il web design, che tra l’altro sta diventando parecchio seria come cosa. Un trucchetto che ho imparato essere molto produttivo con qualsiasi tipo di sito, dal più grande al più piccolo è quello di lavorare modularmente in php.
Innanzitutto, in cosa consiste? Il php ci mette a disposizione la funzione include che ci permette di importare porzioni di testo (o codice) da un’altro file. Quando noi web designer costruiamo un sito delle parti di pagina rimangono sempre identiche (o quasi), come la parte superiore con un eventuale menù (header) e il footer con disclaimer, copyright e cose simili. Perché quindi non mettere queste due parti su due file a parte, senza scriverli uguali in ogni pagina?
Quali saranno i vantaggi lavorando in questo modo? Per esempio fai un sito, bello, ma non con header e footer a parte. Un giorno il tuo cliente ti chiede di mettere la partita iva e il numero di telefono nello spazio in fondo di ogni pagina, tu che fai? Ti metti li a fare copia incolla in fondo ad ogni pagina, magari il tuo cliente si è sbagliato una cifra, devi rifare tutto da capo?
Se avevi il tuo bel file footer.inc, lo aprivi scrivevi e avevi finito!
Questo magari è un problema da poco, ma pensate se il vostro cliente vi chiede di aggiungere una pagina al sito e il menù comincia ad avere troppi link e dovete, quindi, pensare di cambiare la struttura di questo stramaledetto menù!!!
Vai alla Demo Sarica codice sorgente
Come funziona? Beh intanto vediamo com’è strutturato l’esempio che ho creato.
- inc
- footer.inc
- header.inc
- index.php
- about.php
- contacts.php
- style.css
Vediamo che nella cartella “inc” ci sono i nostri protagonisti: header.inc e footer.inc.
Quindi basta includerli all’inizio e alla fine di ogni pagina. Notate che prima di includere l’header imposto una variabile $PAG che viene usata in header.inc per determinare in quale pagina è stato incluso.
Su footer.inc non c’è molto da dire: è indipendente dalla pagina in cui è stato incluso e questo basta e avanza. Invece header.inc è più complesso, dopotutto contiene molte più informazioni importanti dal punto di vista del browser, dei crowler di google, ma anche per l’orientamento dell’utente.
La prima cosa che incontriamo, in header.inc, è un array ($pages) che contiene le informazioni di ogni pagina: il suo nome, il valore da inserire nel tag <title>, le parolechiave specifiche per ogni pagina (keywords), ma può anche contenere il nome del foglio di stile da utilizzare in quella specifica pagina. Poi c’è la pappardella di <!DOCTIPE e i vari meta tag, link a fogli di stile e eventualmente a librerie javascript.
Inizia quindi il vero e proprio header con il titolo e un foreach che scorre l’array delle pagine per scrivere il menù.
Questa che vi ho mostrato è un modalità, si possono fare più file diversi e suddividere la pagina in più sezioni. Come per esempio dividere il menù dall’header, o aggiungere una “sidebar”. Insomma sbizzarritevi!
Spero di esservi stato utile! Questa lezione l’ho fatta partendo da un idea di chris coyer nel suo sito css-tricks.
