Smarty - шаблонный движок для php. Более определенно, он предоставляет управляемый способ разделения прикладной логики и содержания от представления. Это очень удобно в ситуациях, когда программист и проектировщик шаблона играют различные роли, или в часто - это различные люди. Например, скажем, Вы создаете страницу, которая показывает газетную статью. Название статьи, автор и сама статья - елементы, которые не содржат никакой информации о том, как они будут представлены. Их передают в Smarty в приложении, а проектировщик шаблона редактирует шаблоны и использует комбинацию тэгов HTML и тэгов шаблона, чтобы отформатировать представление этих элементов (таблицы HTML, фоновые цвета, размеры шрифта, стиля, и т.д.). Однажды программист захочет изменить способ хранения статьи (сделать изменения в логике приложения.) Это изменение не затрагивает проектировщика шаблонов. Содержание будет все еще передаваться в шаблон таким же самым способом. Аналогично, если проектировщик шаблона хочет полностью перепроектировать шаблоны, это не потребует никаких изменений к прикладной логике. Поэтому, программист может делать изменения в прикладной логике без потребности изменения шаблонов, а проектировщик шаблона может делать изменения в шаблонах без изменения прикладной логики.
Теперь коротко о том, чего не может Smarty. Он не пытается полностью разделить логику от шаблонов. Нет никакой проблемы с логикой в ваших шаблонах при условии, что это строго логика представление. Совета: держите прикладную логику вне шаблонов, а логику представления вне приложения. Так проще всего сохранить проект управляемым и расширяемым в течение долгого времени.
Один из уникальных аспектов в Smarty - компилирование шаблонов. Это означает, что Smarty читает файлы шаблонов и создает php сценарии из них. Они создаются один раз и потом только выполняються. Поэтому нету необходимости обрабатывать файл шаблона для каждого запроса, и каждый шаблон может пользоваться всеми преимуществами кэшируюших решений php компилятора таких, как Zend Accelerator (http://www.zend.com/) или PHP Accelerator (http://www.php-accelerator.co.uk).
Некоторые возможности Smarty:
Он очень быстр.
Он эффективен, так как PHP обработчик делает грязную работу
Никакой лишней обработки шаблонов, они компилируються только один раз.
Перекомпилируются только те шаблоны, которые именились.
Вы можете создавать пользовательскиефункции and модификаторы, так что язык шаблонов чрезвычайно расширяем.
Настраиваемые разделители тэгов шаблона, то есть вы можете использовать {}, {{}}, <!--{}-->, и т.д..
If/elseif/else/endif конструкции передаются PHP обработчику, так что синтаксис {if ...} выражения может быть настолько простым или комплексным, как вам нравится.
Допустимо неограниченное вложение секций, условий и т.д.
Возможно включать php код прямо в ваш шаблон, хотя это не должно требоваться (не рекомендуется), в силу того, что движок гибко настраиваемый.
Встроеное кэширование
Произвольные источники шаблона
Произвольные функции обработки кэширования
Поддержка плагинов
Пред. | Начало | След. |
Приступая к работе | Уровень выше | Инсталяция |