Smarty generates web content through the placement of special Smarty tags within a document. These tags are processed and substituted with other code. Tags are directives for Smarty that are enclosed by template delimiters. These directives can be variables, denoted by a dollar sign ($), functions, logical or loop statements. Smarty allows PHP programmers to define custom functions that can be accessed using Smarty tags.
Smarty example
Since Smarty separates PHP from HTML, there are two files — one contains the presentation code: an HTML template, including Smarty variables and tags - {$title_text|escape}{$body_html} - which might look like this:
<!DOCTYPE html><htmllang="en"><head><metacharset="utf-8"><title>{$title_text|escape}</title></head><body>{* This is a little comment that won't be visible in the HTML source *}{$body_html}</body><!-- this is a little comment that will be seen in the HTML source --></html>
The business logic to use the Smarty template above could be as follows:
define('SMARTY_DIR','smarty-2.6.22/');require_once(SMARTY_DIR.'Smarty.class.php');$smarty=newSmarty();$smarty->template_dir='./templates/';$smarty->compile_dir='./templates/compile/';$smarty->assign('title_text','TITLE: This is the Smarty basic example ...');$smarty->assign('body_html','<p>BODY: This is the message set using assign()</p>');$smarty->display('index.tpl');
Further reading
Hasin Hayder; J. P. Maia; Lucian Gheorghe (2006). Smarty PHP Template Programming And Applications. ISBN978-1-904-81140-4.
^Parr, Terence John (2004). Enforcing strict model-view separation in template engines. Proceedings of the 13th international conference on World Wide Web. ISBN1-58113-844-X.