Smarty: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Broker (обсуждение | вклад) |
|||
Строка 24: | Строка 24: | ||
===Ссылки=== |
===Ссылки=== |
||
* [http:// |
* [http://smarty.php.net/distributions/manual/ru/Smarty-2.6.14-docs.pdf Руководство по Smarty 2.6.14]{{ref-ru}} |
||
* [http://www.smarty.net/manual/ru/ Документация]{{ref-ru}} - ''не рабочая ссылка (проверено 14.10.2007)'' |
|||
[[Категория:PHP]] |
[[Категория:PHP]] |
Версия от 16:01, 14 октября 2007
Smarty — это компилирующий обработчик шаблонов для PHP. Говоря более четко, он предоставляет один из инструментов, которые позволяет добиться отделения прикладной логики и данных от представления. Это очень удобно в ситуациях, когда программист и верстальщик шаблона — различные люди.
Например, скажем, вы создаете страницу, которая показывает газетную статью. Название статьи, автор и сама статья — элементы, которые не содержат никакой информации о том, как они будут представлены. Их передают в Smarty из приложения, а верстальщик шаблона редактирует шаблоны и использует комбинацию тэгов HTML и тэгов шаблона, чтобы отформатировать представление этих элементов (таблицы HTML, фоновые цвета, размеры шрифта, стиля и т. д.). Однажды программист захочет изменить способ хранения статьи (сделать изменения в логике приложения). Это изменение не вызовет изменений в шаблонах. Содержание будет все еще передаваться в шаблон таким же самым способом. Аналогично, если верстальщик захочет полностью перепроектировать шаблоны, это не потребует никаких изменений в прикладной логике.
Одно из предназначений Smarty — это отделение логики приложения от представления. Конечно же, шаблоны могут содержать в себе логику, но лишь при условии, что эта логика необходима для правильного представления данных. Такие задачи, как подключение других шаблонов, чередующаяся окраска строчек в таблице, приведение букв к верхнему регистру, циклический проход по массиву для его отображения и т. д. — всё это является примером логики представления. Не следует думать, что Smarty заставляет вас разделять логику приложения и представление. Smarty не видит разницы между этими вещами, так что помещать или не помещать логику приложения в шаблоны — решать вам. Если же вы считаете, что в шаблоне вообще не должно быть логики, вы можете ограничиться использованием чистого текста и переменных.
Одна из уникальных возможностей Smarty — компилирование шаблонов. Это означает, что Smarty читает файлы шаблонов и создает PHP-код на их основе. Код создаётся один раз и потом только выполняется. Поэтому нет необходимости обрабатывать файл шаблона для каждого запроса и каждый шаблон может пользоваться всеми преимуществами таких кэшируюших решений, как Zend Accelerator или PHP Accelerator.
Некоторые особенности Smarty:
- Он очень быстр.
- Он эффективен, так как обработчик PHP делает за него грязную работу.
- Никакой лишней обработки шаблонов, они компилируются только один раз.
- Перекомпилируются только те шаблоны, которые изменились.
- Можно создавать пользовательские функции и модификаторы, что делает язык шаблонов чрезвычайно расширяемым.
- Настраиваемые разделители тэгов шаблона, то есть вы можете использовать {}, {{}}, и т. д.
- Конструкции if/elseif/else/endif передаются обработчику PHP, так что синтаксис выражения {if …} может быть настолько простым или сложным, насколько вам угодно.
- Допустимо неограниченное вложение секций, условий и т. д.
- Существует возможность включения PHP-кода прямо в ваш шаблон, однако обычно в этом нет необходимости (и это не рекомендуется), так как движок весьма гибок и расширяем.
- Встроенный механизм кэширования.
- Произвольные источники шаблонов.
- Пользовательские функции кэширования.
- Компонентная архитектура.
Ссылки
- Руководство по Smarty 2.6.14 (рус.)
- Документация (рус.) - не рабочая ссылка (проверено 14.10.2007)