Co je Smarty?
Smarty je šablonovací systém pro PHP, který umožňuje oddělení aplikační (samotný kód PHP) a zobrazovací (klasické HTML) logiky. To se hodí především pro větší projekty, kdy programátor PHP a kodér HTML není tatáž stejná osoba. Díky Smarty tak kodér úpravami HTML nezničí práci programátora. Kodér tedy vždy pracuje jen s HTML a programátor jen s PHP.
Smarty funguje tak, že kodér upravuje klasickou stránku HTML (šablonu) a v ní jsou určité značky, které jsou dynamicky vytvářené pomocí PHP. Taková šablona může např. vypadat takto (index.tpl):
<html>
<body>
Vítejte {$jmeno}
</body>
</html>
Právě značka {$jmeno} bude zajímat programátora. Ten v jiném skriptu zjistí (třeba z databáze) jméno návštěvníka, které pak pomocí metod třídy Smarty zamění za {$jmeno} v šabloně. Příklad:
<?php
/*Skript vybere z databáze jméno
návštěvníka a přiřadí ho proměnné $name */
$smarty->assign('jmeno','$name');
$smarty->display('index.tpl');
?>
Metoda $smarty->assign zamění proměnnou $name za značku {$jmeno} v šabloně. Druhá metoda pak načte a zobrazí šablonu (tento skript by nefungoval, museli bychom ještě zahrnout třídu Smarty, ale pro zjednodušení je to myslím dostačující).
Velkou předností je kompilace šablon. Pokud zavoláme předchozí skript v prohlížeči, Smarty vytvoří klasický skript PHP i se zobrazovací logikou do specialního adresáře. Při příštím volání funkce již není nutné znova značky převádět, zavolá se zkompilovaná verze. Proč to Smarty dělá? Je to především rychlejší.
Ještě mnohem rychlejší než kompilace je cachování obsahu. Cachování je v podstatě kompilace, kdy se nevytváří PHP skripty, ale klasické HTML. Cachování je vysvětleno velmi podrobně později.
O Smarty bychom mohli takto mluvit dlouhé hodiny. Je to opravdu vynikající šablonovací systém, což dokazuje fakt, že projekt Smarty získal vlastní subdoménu na hlavní adrese www.php.net.
Pokračujte dále: Instalace Smarty