Smarty is a
web template system written in
PHP. Smarty is primarily promoted as a tool for
separation of concerns.
Smarty is intended to simplify
compartmentalization, allowing the front-end of a web page to change separately from its back-end. Ideally, this lowers costs and minimizes the efforts associated with
software maintenance
Software maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes.
A common perception of maintenance is that it merely involves fixing defects. H ...
.
Smarty generates web content through the placement of special ''Smarty tags'' within a document. These tags are processed and
substituted
A substitution reaction (also known as single displacement reaction or single substitution reaction) is a chemical reaction during which one functional group in a chemical compound is replaced by another functional group. Substitution reactions ar ...
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 -
- which might look like this:
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 = new Smarty();
$smarty->template_dir = './templates/';
$smarty->compile_dir = './templates/compile/';
$smarty->assign('title_text', 'TITLE: This is the Smarty basic example ...');
$smarty->assign('body_html', 'BODY: This is the message set using assign()
');
$smarty->display('index.tpl');
Further reading
*
See also
*
Comparison of web template engines
The following table lists the various web template engines used in Web template systems and a brief rundown of their features.
See also
* Template processor
* Web template system
A web template system in web publishing lets web designers ...
*
Web template
References
External links
* {{Official website, http://www.smarty.net/
Free software programmed in PHP
Template engines