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

dan banyak fitur lainnya. Template engine lainnya juga mendukung perintah-perintah ini dalam templat.

Contoh kode sunting

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 sunting

Pranala luar sunting