Или как да не пишем във всеки шаблон, че ще има header.
Всеки, който започва да използва нов web framework първоначално се запитва за няколко основни неща. Като цяло те и отговарят на MVC практиката.
Как да направим така че всичките ни състояния в сайта да бъдат описани в различни файлове, така че да можем лесно да си намираме и поддържаме кода.
Как да се погрижим за правата и ролите на различните потребители на сайта.
Как да разделим html-а на няколко файла, за да не пишем по един милион пъти includes на header или footer.
Почти всеки, който се е сблъсквал с PHP програмиране е чувал за Smarty и когато някой, по-често псевдо разбирач, ти изреди една плеяда колко е ретроградно да се слага php код измежду html таговете и как трябвало Smarty да се притече на помощ, ето един добър довод за излагане против Smarty.
Хубаво е да се ползва Smarty. Няма проблем. Само че нека си представим следния пример. Имаме сайт с header - content - footer. Като обикновено header-a съдържа разни връзки към css и meta тагове. Със Smarty като искаме да използваме тая структура за 10 файла, 10 пъти ще имаме следния код:
{include file="header.tpl"}
{include file="content.tpl"}
{include file="footer.tpl"}
и ако това се повтаря в 100 ...