Template Engine, indispensabili per lo sviluppo di siti e applicazioni web

NELL’articolo precendente avevo parlato del pattern Model-View-Controller, ma prima di affrontare il tema dei Frameworks, vorrei presentarvi una soluzione per applicare parte di quel modello alla risoluzione di un progetto: i template engine. Si tratta di software che gestiscono la visualizzazione in un applicazione web, consentono di separare completamente l’HTML dal resto del codice, diminuendo considerevolmente il lavoro di manutenzione e rendendo indipendenti le vari parti del progetto.

Vantaggi

Con i Template Engine si può sviluppare un applicazione web disinteressandosi completamente, in un primo tempo, dell’aspetto di visualizzazione dei dati e della grafica poi sviluppare la grafica e la presentazione dei dati come un problema a sè stante. Questo consente di suddividere il lavoro in più tempi semplificandone certi aspetti oppure nel caso si lavori in team di dividere il lavoro a varie persone.

Nel caso per esempio si volesse rinnovare completamente la grafica di un applicazione basterà mettere mano ai template senza dover andare a toccare il codice del controller (il motore dell’applicazione). Il controller si occuperà solo dell’elaborazione mandando al template engine dati “rozzi” che quest’ultimo implementerà nell’HTML.

Per riassumere possiamo vedere i seguenti come i principali vantaggi:

  1. Manutenzione, se dobbiamo fare semplici mofiche al codice del motore dell’applicazione sarà più semplice senza dover toccare la parte grafica
  2. Grafica completamente separata dal codice, quindi le due cose possono essere sviluppate da persone differenti e in momenti differenti
  3. Aiuta a mantenere il codice html pulito e conferme agli standard
  4. Velocità, grazie alla cache, implementata ormai in molti template engine, la presentazione delle pagine è più veloce
  5. Sicurezza, tra l’utente male intenzionato e il codice del controllore c’è uno sbarramento in più.
  6. Riutilizzo, possiamo cambiare completamente la grafica senza toccare il codice.

Come per i frameworks anche in questo caso esistono vari template engine per ogni linguaggio di programmazione, quello da me più utilizzato che vedremo nello specifico è Smarty.

In realtà potremmo anche valutare di realizzarne uno molto semplice noi, questo per un sito di poche pagine senza grandi pretese potrebbe essere una buona soluzione ma i vantaggi che comporta utilizzarne uno già fatto sono numerosi, dalla sicurezza alla facilità di implementazione.

Smarty

Smarty è un motore di web template scritto in PHP attualmente è alla versione 2.6 ma è in fase di completamente la versione 3.0 (per ora è stata rilasciata la beta 7). In pratica si tratta di una classe scritta in PHP per gestire template ovvero nient’altro che file con estensione .tpl scritti in html a cui possiamo collegare CSS, Ajax, Javacript ecc ecc.

Nel template al posto dei contenuti andiamo a mettere dei speciali tag tra parentesi graffe. Smarty non farà altro che prendere i contenuti passati dal codice e metterli nel template in html al posto dei tag. La realizzazione di tutto ciò la andremo a vedere nei prossimi articoli.