Smarty

Smarty adalah template engine (mesin templat) yang ditulis dalam PHP. Smarty memisahkan PHP dari HTML dan umumnya digunakan untuk menghasilkan isi HTML yang dinamis dengan mengizinkan peletakan tag khusus Smarty di dalam sebuah dokumen. Tag-tag yang dapat digunakan termasuk (namun tidak hanya berupa) variabel seperti {$variable}, dan sejumlah operator logis dan loop.

Smarty paling sering digunakan oleh aplikasi-aplikasi berbasiskan PHP untuk memisahkan "business logic" ("logika bisnis") dari presentasi. Hasilnya adalah pengkodean yang lebih ramping dan lebih mudah diubah. Sebagai contoh, penampilan (atau skin; "kulit") sebuah aplikasi berbasiskan Smarty biasanya dapat diubah dengan mudah tanpa perlu melakukan modifikasi terhadap business logic atau kode PHP.

Smarty mengizinkan pemrograman templat dengan
 regular expression
 foreach
 if
 nl2br
dan banyak fitur lainnya. Template engine lainnya juga mendukung perintah-perintah ini dalam templat.

Contoh kode 

Karena Smarty memisahkan PHP dari HTML, maka terdapat dua berkas:

<!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>

<p>{$body_text}</p>

</body>
</html>

Dalam kode business logic, Smarty dapat diubah agar dapat menggunakan templat berikut:
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: Ini adalah contoh Smarty...');
$smarty->assign('body_text', 'BODY: Pesan ini ditulis menggunakan fungsi assign()');

$smarty->display('basic.htm');

Perangkat-perangkat lunak yang dibuat menggunakan Smarty 
 bBlog
 Gallery
 Ozone PHP Framework
 TikiWiki
 XOOPS
 paFileDB
 ATK - Achievo ToolKit
 Zoop Framework for PHP
 Supersite
 CMScout

Pranala luar 
  Situs resmi 
 Unduh

Bahasa pemrograman