Smarty (template engine)

From Wikipedia the free encyclopedia

Smarty
Developer(s)Monte Ohrt, Messju Mohr, Uwe Tews
Stable release
5.0.2[1] Edit this on Wikidata / 28 March 2024; 28 days ago (28 March 2024)
Repository
Written inPHP
TypeTemplate Engine
LicenseLGPL
Websitewww.smarty.net

Smarty is a web template system written in PHP. Smarty is primarily promoted as a tool for separation of concerns.[2] 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.

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[edit]

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> <html lang="en"> <head>    <meta charset="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 = 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', '<p>BODY: This is the message set using assign()</p>');  $smarty->display('index.tpl'); 

Further reading[edit]

  • Hasin Hayder; J. P. Maia; Lucian Gheorghe (2006). Smarty PHP Template Programming And Applications. ISBN 978-1-904-81140-4.

See also[edit]

References[edit]

  1. ^ "Release 5.0.2". 28 March 2024. Retrieved 25 April 2024.
  2. ^ Parr, Terence John (2004). Enforcing strict model-view separation in template engines. Proceedings of the 13th international conference on World Wide Web. ISBN 1-58113-844-X.

External links[edit]