Poichè le funzioni che maneggiano i template sono sostanzialmente le stesse queste, storicamente, sono state raggruppate in librerie già pronte scritte in PHP.
La bibliografia spesso le chiama motori di template e inoltre tiene a precisare che già il PHP stesso è un motore di template, se usato come dicevo nel post precedente.
Tuttavia una delle più antiche (almeno che io ricordi) fa parte del progetto PEAR e si chiama HTML_Template_IT, si può visionarne la documentazione a
pear.php.net/manual/en/package.html.htm ... .intro.php.
Sostanzialmente usa dei marcatori (placeholder) posti nel codice HTML del template dove al momento della generazione della pagina web avviene la sostituzione con il contenuto della variabilecorrispondente.
Questo permette anche di fare in modo che il contenuto sia un altro template, che diviene a sua volta sub-template incastrato nel template più esterno.
Il passo successivo è quello di fornire un metodo di caching per la visualizzazione del template considerando che anche in un sito dinamico i cambiamenti di contenuto sono poco frequenti.
Sono stati quindi sviluppati dei sofisticati motori di template dotati di compilatori che preparano il template in memoria pronto per essere visualizzato rapidamente dal secondo accesso in poi. Un famoso motore di questo tipo è Smarty e la sua documentazione contiene un utile tutorial che consiglio di provare.
http://www.smarty.net/docs/en
Questa organizzazione, tuttavia, da per scontato che esista un unico punto di ingresso al sito (il solito file index.php) e che esista una convenzione che definisca delle variabili passate dal browser con il metodo GET cioè
che serviranno a selezionare quale pagina del sito mostrare. In questo modo c'è una parte in PHP che viene sempre eseguita e che contiene tutte quelle inizializzazioni che sono comuni a tutte le pagine, evitando di duplicare il codice stesso.
La letteratura chiama spesso questo file front-controller, mentre chiama action-controller ognuno dei file, relativi a ogni pagina, che venie incluso dal front-controller dopo le inizializzazioni e dopo aver stabilito quale pagina mostrare. Ogni action-controller ha il
proprio template dove avviene la (o le) sustituzione(i) e quindi ri-spedito come stringa al browser.
Il template è quindi solo una parte del codice di un sito e per venire incontro al webmaster sono nate delle librerie in PHP che fanno da base per una organizzazione del codice come ho illustrato sopra.
I cosiddetti framework PHP.
Per iniziare si può dare un'occhiata a TinyMVC che è molto semplice ma contiene già tutto l'essenziale per funzionare bene (e anche
molto veloce proprio perchè semplice)
http://www.tinymvc.com/documentation/in ... umentation
Se si desidera qualche funzionalità in più si può passare a CodeIgniter
ellislab.com/codeigniter, qui nel manuale utente ho trovato la spiegazione più chiara fra quelle viste in giro.
ellislab.com/codeigniter/user-guide/ove ... pflow.html
Aggiungendo ancora complessità, funzionalità ed estendibilità si arriva a Zend Framework
framework.zend.com dove
l'uso del PHP Object-Oriented reggiunge livelli veramente accademici.
Infine aggiungo che con questi framework ci si trova per così dire un gradino sotto i vari Joomla
http://www.joomla.org, Drupal
drupal.org, Typo3
typo3.org e simili, dove il funzionamento interno si basa sugli stessi principi esposti sopra
(almeno nelle ultime versioni) ma dove sono state fatte delle scelte grafiche e funzionali già predefinite, che sollevano il webmaster dai dettagli relativi al codice PHP, lasciando solo la possibilità di configurare il sito agendo generalmente attraverso un pannello di controllo, anche piuttosto complesso, dove è anche possibile estendere le funzionalità usando dei moduli preconfezionati.
@ ai moderatori e amministratori
Ho perso il conto dei numerosi tentativi che ho fatto, da ieri sera 3/10/2013, per riuscire a inviare questo post