Smarty

Smarty on mallimootor, mis on kirjutatud PHPs. Smarty eraldab PHP HTMList ja põhiliselt kasutatakse teda dünaamilise HTML sisu tekitamiseks, lubades dokumendis spetsiaalseid Smarty märgendeid. Lubatud märgendite hulgas on muuhulgas muutujad nagu {$muutuja}, ja valik loogika ning tsükli operaatoreid.

Kõige sagedamini kasutatakse Smartyt PHP-põhistes rakendustes, et eraldada "äriloogikat" esitlusest. Nii on võimalik hoida lähtekoodi palju puhtamana ja tema muutmine on paindlikum. Näiteks võib tavaliselt muuta Smarty-põhise rakenduse välimust (või, rüüd) hõlpsasti, ilma, et peaks üldse jälgima äriloogikat või PHP koodi.

Smarty võimaldab mallidega programmeerimisel kasutada:
 regulaaravaldisi
 foreach'i
 if
 nl2br
ja palju teisi lisavõimalusi. Ka teised mallimootorid toetavad neid käske mallides.

Lähtekoodi näidis 

Kuna Smarty eraldab PHP HTMList, on tegemist kahe failiga:

<!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> {* See on väike kommentaar, mis ei ole HTML lähtekoodis nähtav *}

<p>{$body_text}</p>

</body><!-- see on väike kommentaar, mis on HTML lähtekoodis nähtav -->
</html>

Äriloogika lähtekoodis saab Smarty häälestada kasutama seda malli:
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', 'See on Smarty lihtne näidis ...');
$smarty->assign('body_text', 'See on sõnum, mis seati assign() käsuga');

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

Tarkvara, mis on kirjutatud Smarty baasil
 Bitweaver
 last.fm
 bBlog
 Gallery
 Ozone PHP Framework
 TikiWiki
 XOOPS
 paFileDB
 ATK - Achievo ToolKit
 Zoop Framework for PHP
 Supersite
 CMScout
 Flickr
 Trybes by Accepté (Netherlands)

Ametlik Smarty allikate veebileht.

Vaata ka

 PRADO, komponendipõhine veebiarendusraamistik PHP5le
 CakePHP, PHP veebiarendusraamistik inspireerituna Ruby on Railsist

Välislingid 
 Ametlik Smarty koduleht (inglise keeles)
 Smarty Foorum (inglise keeles) - teised keeled
 Smarty kasutajate Wiki
 PHP Templating with Smarty Cezar Floroiu - Smarty õpetus
 Smarty versus XML/XSLT - DevPapers.com, Sergei Makogon
 Artikkel "Templates, Gift from Heaven or Syntactic Junk Food?", Nathan Oostendorp
 Peatükk Smarty PHP Template Programming and Applications raamatust.

Programmeerimine
Tarkvara