Энциклопедия: SMARTY, СМАРТИ
Smarty — компилирующий обработчик шаблонов для PHP, один из инструментов, позволяющих отделить прикладную логику и данные от представления в духе концепции Model-view-controller.
Язык шаблонов Smarty расширяет HTML smarty-тегами, встраиваемыми в документ. Эти теги могут представлять собой PHP-переменные (возможно, снабжённые модификаторами, напр. {$variable|nl2br}), функции или базовые конструкции структурного программирования, такие как {if …} … {else} … {/if}. Одно из предназначений Smarty — это отделение логики приложения от представления.
Шаблоны, тем не менее, могут содержать в себе логику, но это должна быть логика представления данных. Она должна решать такие задачи, как подключение других шаблонов, чередующаяся окраска строчек в таблице, приведение букв к верхнему регистру, циклический проход по массиву для его отображения и т. п.
Сама по себе библиотека Smarty не принуждает разделять логику приложения и представление — корректная дисциплина использования веб-шаблонов остаётся задачей разработчика. Smarty читает файлы шаблонов и создаёт PHP-код на их основе. Код создаётся один раз и потом только выполняется. Поэтому нет необходимости обрабатывать файл шаблона для каждого запроса и каждый шаблон может пользоваться всеми преимуществами расширений PHP для кэширования байт-кода, таких как eAccelerator или PHP Accelerator. Smarty стал, вероятно, первой шаблонной библиотекой, использовавший такой механизм, позднее появилось множество аналогов, как использующих smarty-подобный синтаксис шаблонов (вроде Twig или Quicky), так и другие подходы к синтаксису шаблонов.
Компиляция шаблонов позволяет достичь производительности сравнимой с производительностью PHP-шаблонов написанных вручную[1]. Конструкции if/elseif/else/endif передаются обработчику PHP, так что синтаксис выражения {if …} может быть настолько простым или сложным, в такой степени в какой это требуется. Возможно неограниченное вложение секций, условий и т. д.
Для упрощения создания масштабируемых веб-приложений в Smarty встроен механизм кэширования.
Язык шаблонов Smarty расширяет HTML smarty-тегами, встраиваемыми в документ. Эти теги могут представлять собой PHP-переменные (возможно, снабжённые модификаторами, напр. {$variable|nl2br}), функции или базовые конструкции структурного программирования, такие как {if …} … {else} … {/if}. Одно из предназначений Smarty — это отделение логики приложения от представления.
Шаблоны, тем не менее, могут содержать в себе логику, но это должна быть логика представления данных. Она должна решать такие задачи, как подключение других шаблонов, чередующаяся окраска строчек в таблице, приведение букв к верхнему регистру, циклический проход по массиву для его отображения и т. п.
Сама по себе библиотека Smarty не принуждает разделять логику приложения и представление — корректная дисциплина использования веб-шаблонов остаётся задачей разработчика. Smarty читает файлы шаблонов и создаёт PHP-код на их основе. Код создаётся один раз и потом только выполняется. Поэтому нет необходимости обрабатывать файл шаблона для каждого запроса и каждый шаблон может пользоваться всеми преимуществами расширений PHP для кэширования байт-кода, таких как eAccelerator или PHP Accelerator. Smarty стал, вероятно, первой шаблонной библиотекой, использовавший такой механизм, позднее появилось множество аналогов, как использующих smarty-подобный синтаксис шаблонов (вроде Twig или Quicky), так и другие подходы к синтаксису шаблонов.
Компиляция шаблонов позволяет достичь производительности сравнимой с производительностью PHP-шаблонов написанных вручную[1]. Конструкции if/elseif/else/endif передаются обработчику PHP, так что синтаксис выражения {if …} может быть настолько простым или сложным, в такой степени в какой это требуется. Возможно неограниченное вложение секций, условий и т. д.
Для упрощения создания масштабируемых веб-приложений в Smarty встроен механизм кэширования.