Smarty adalah satu sistem templat web berasaskan PHP. Smarty dipromosikan terutamanya sebagai sebuah alat untuk pengasingan usaha, yang merupakan strategi rekaan untuk sesetengah penggunaan.[1][2]

Smarty
PembangunMonte Ohrt, Messju Mohr
Keluaran stabil
2.6.19 / 11 Feb 2008
Repositori Sunting ini di Wikidata
JenisEnjin templat
LesenLGPL
Tapak webwww.smarty.net

Contoh kod sunting

Memandangkan Smarty mengasingkan PHP daripada HTML, maka terdapat dua fail:

<!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> {* Ini adalah sedikit komen yang tidak akan dilihat di dalam sumber HTML *}

<p>{$body_text}</p>

</body><!-- Ini adalah sedikit komen yang akan dilihat di dalam sumber HTML -->
</html>

Dalam kod logik perniagaan Smarty boleh diset untuk menggunakan templat ini:

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

$smarty = new Smarty();
$smarty->template_dir = './templates/';
$smarty->compile_dir = './templates/compile/';
$smarty->cache_dir = './templates/cache/';
$smarty->caching = false;
$smarty->error_reporting = E_ALL; // TINGGALKAN E_ALL SEMASA PEMBINAAN
$smarty->debugging = true;

$smarty->assign('title_text', 'TITLE: Ini adalah contoh asas Smarty ...');
$smarty->assign('body_text', 'BODY: Ini adalah mesej yang disetkan menggunakan assign()');

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

Catatan dan rujukan sunting

  1. ^ Smarty mengasingkan kod PHP, (selalunya diwakilkan sebagai logik perniagaan) daripada HTML, (selalunya diwakilkan sebagai logik penyampaian).
  2. ^ Parr, Terence John (2004). Enforcing strict model-view separation in template engines. Proceedings of the 13th international conference on World Wide Web. 1-58113-844-X.

Pautan luar sunting