SMARTY: BREVE INTRODUZIONE
Posted by admin | Posted in PHP, Smarty | Posted on 26-11-2008
Tag:PHP, Smarty
0
Smarty è un motore per la creazione di template che permette di separare la parte di logica (PHP) dalla parte di presentazione (HTML, XML, ecc.).
Smarty offre un semplice linguaggio per creare i template, con la possibilità di avere condizioni e cicli.
Ho utilizzato questo strumento per riscrivere del codice che avevo già creato in precedenza ed effettivamente il codice prodotto è risultato di granlunga inferiore di quello che avevo in partenza. Il codice rimane più pulito e più semplice da modificare, sia nella parte di logica che in quella di template.
Come Funziona?
Per utilizzare Smarty bisogna prima di tutto scaricare le sue librerie e copiarle in una cartella del sito (io userò la cartella “libs”). Sono necessarie altre due cartelle, la cartella templates e la cartella templates_c.
Nella cartella templates (Come dice il nome stesso) verranno creati i file di template, mentre la seconda è una cartella che serve per il funzionamento di Smarty, verrà quindi lasciata vuota. Bisogna assicurarsi che questa cartella abbia i permessi di scrittura per l’utente PHP.
Ora dovremo includere nella nostra pagina PHP le librerie e istanziare un oggetto Smarty.
1 require 'libs/Smarty.class.php';2 $smarty = new Smarty;
I dati verranno passati al template tramite variabili assegnate a Smarty tramite codice.
1 $variabile = "In questa variabile c'è del contenuto magari preso da database";2 $smarty->assign("variabile",$variabile);
La funzione assign ha come primo parametro il nome della variabile che sarà visibile e utilizzabile nel template, e come secondo parametro il valore da associare alla variabile, per esempio
1 $smarty->assign("menu_selezionato", 2);2 $smarty->assign("titolo", "Esempio");
Smarty offre anche la possibilità di utilizzare un comodo strumento di debug.
Per attivarlo si usa il seguente comando:
1 $smarty->debugging = true;
A questo punto per associare un template alla pagina si usa il metodo display, l’estensione di default per la creazione di template è “tpl”:
1 $smarty->display("mio_template.tpl")
L’unica cosa che manca ora da fare è di definire il template:
1 <?xml version="1.0" encoding="UTF-8"?>2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">4 <head>5 <title>{$titolo}</title>6 <body>7 {$contenuto}8 </body>9 </html>
Come vedete dal codice per utilizzare le variabili precedentemente definite è solo necessario chiuderle tra parentesi graffe utilizzando il $ prima del nome, come se fossero normali variabili PHP.

