Francais | English | Espanõl

Smarty

From Wikipedia, the free encyclopedia

Jump to: navigation, search
Smarty
Image:Smarty-logo.gif

<tr><th>Developer:</th><td>Monte Ohrt, Messju Mohr</td></tr><tr><th>Latest release:</th><td>2.6.14 / 28th May 2006</td></tr>

Use: Template Engine

<tr><th>License:</th><td>LGPL</td></tr>

Website: smarty.php.net

Smarty is a web template system written in PHP. Smarty separates PHP, as a business logic, from HTML, a presentation logic, and generates web content by the placement of special Smarty tags within a document (i.e. variable substitution).

Tags are variables such as {$variable}, and a range of logical and loop operators.

This makes for much cleaner coding and more flexible modification. For instance, one could typically modify a Smarty-based application's appearance (i.e. skin) easily, without ever looking at any business logic or PHP code. This compartmentalization also allows for the back-end to change separate from the layout.

Smarty allows template programming with several built in features, like:

and many more features. Other template engines also support these commands in templates.

  • Create your own functions
  • Print the date, do mathematical equations within the template

[edit] Code example

Since Smarty separates PHP from HTML, you have two files:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
   <title>{$title_text}</title>
   <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>

<body> {* This is a little comment that won't be visible in HTML source *}

<p>{$body_text}</p>

</body><!-- this is a little comment that will be seen in source -->
</html>

In the business logic code you can configure Smarty to use this template:

define('SMARTY_DIR', 'smarty-2.6.9/' );
require_once(SMARTY_DIR . 'Smarty.class.php');

$smarty = new Smarty;
$smarty->config_dir = SMARTY_DIR;
$smarty->template_dir = './tmpl';
$smarty->compile_dir = './tmpl/compile';
$smarty->compile_check = TRUE;
$smarty->debugging = FALSE;

$smarty->assign('title_text', 'TITLE: This is the Smarty basic example ...');
$smarty->assign('body_text', 'BODY: This is the message set using assign()');

$smarty->display('index.tpl');

[edit] See also

[edit] External links

et:Smarty es:Smarty id:Smarty pl:Smarty ru:Smarty fi:Smarty

Personal tools