Da quando ho iniziato la mia professione di Programmatore PHP ho sempre avuto per esigenze di professionalità e per aumentare la modularità dei lavori svolti, la necessità di tenere separati distintamente la grafica con la programmazione, pur non essendo sempre possibile intraprendere questo percorso in questo articolo voglio segnalare uno degli strumenti più utili che ho incontrato nella mia professione di Programmatore PHP e indubbiamente lo Smarty Template.
Smarty infatti è un motore (engine) che consente la separazione logica tra grafica e contenuto dinamico, tale separazione consente ad un Programmatore PHP di lavorare separatamente il codice e poter nel corso del tempo lavorare alla grafica modificandola a proprio piacimento oppure affidandola ad un webdesign che conosca tale engine.
Un Programmatore che intenda lavorare con Smarty Template può scaricarlo a questo indirizzo e potrà consultare la documentazione al seguente indirizzo, ovviamente nel seguente esempio cercherò di illustrare ad ogni Programmatore PHP l'efficacia e le prime intuitive impostazioni di questo Engine, potendone notare subito gli indubbi vantaggi nel suo utilizzo.
Quindi, supponiamo di voler realizzare l'elencazione di una tabella, nel nostro caso lavoreremo su un array statico, nulla vieterà però che il Programmatore PHP lavori su dati estratti da un database MySQL.
Supponiamo di creare con PHP un file come segue, il file è semplice, richiama la libreria Smarty Template che il Programmatore PHP intende utilizzare, e assegno le variabili che potrò gestire a mio piacimento nel file di template:
<?php
//includo e istanzio l'oggetto
require 'libs/Smarty.class.php';
$smarty = new Smarty;
//creo un array di valori che visualizzero a schermo che potrò //eventualmente recuperare da database
$dipendenti = array('Rossi Mario', 'Bianchi Roberto', 'Russo Angelo','Lodi Alberto','Cassio Michela');
$stipendi = array('1.250', '1.370', '1.650','980','1.150');
//assegno l'array ad una variabile smarty da utilizzare nel file di //template
$smarty->assign("dipendenti",$dipendenti);
$smarty->assign("stipendi",$stipendi);
//inizializzo una variabile di iterazione per un ciclo
$smarty->assign("i",-1);
//richiamo il template
$smarty->display("template.tpl");
?>
Nel file di template.tpl possiamo a questo punto gestire graficamente quello che intendiamo visualizzare a video, come possiamo vedere dall'esempio smarty consente di utilizzare del codice come il ciclo foreach che è necessario per scorrere l'array ma il codice resta incluso nelle parentesi { } e distinto nettamente dal codice:
Otterremo a questo punto grafica e codice in PHP separati. Guarda l'esempio.
Supponiamo ora che il Programmatore PHP o colui che si occupa della grafica voglia intervenire sulla grafica per un aggiornamento oppure per un semplice cambio di necessità, grazie a Smarty Template sarà possibile intervenire sul file tpl senza intervenire sul file PHP.
Supponiamo che nel secondo template il Programmatore PHP e/o il grafico vogliano realizzare la tabella in modo diverso, Smarty Template consente un ottimizzazione del lavoro e una pulizia nel codice che non sempre abbiamo la fortuna di trovare o mantenere.
Semplicemente cambiando poche righe di codice possiamo ottenere un elencazione dei dati in una maniera completamente (guarda l'esempio) diversa dalla precedente, è intuitivo comprendere che questo è un esempio esemplificativo, ma ovviamente un Programmatore PHP e un WebDesigner che intende utilizzare Smarty Template può comprendere la potenza di uno strumento che separa in maniera così netta e sintatticamente ordinata la grafica e il codice sviluppato dal Programmatore PHP.