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