Вход

Просмотр полной версии : Smarty. Шаблонизатор для PHP


s1mon
06.02.2006, 22:22
SMARTY

http://smarty.php.net/gifs/smarty-logo-orange.gif


В этой теме предлагаю обсуждать разные трюки, фишки, проблемы и т/д для данного популярного шаблонизатора.

Foxter
06.02.2006, 23:34
эммм... а линк на него можно? или краткое описание?

s1mon
07.02.2006, 09:21
Foxter Конечно!

http://smarty.php.net/


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

Он очень быстр.
Он эффективен, так как обработчик PHP делает за него грязную работу.
Никакой лишней обработки шаблонов, они компилируются только один раз.
Перекомпилируются только те шаблоны, которые изменились.
Вы можете создавать пользовательские функции (http://manual.baik.ru/sif/language.custom.functions.html) и модификаторы (http://manual.baik.ru/sif/language.modifiers.html), что делает язык шаблонов чрезвычайно расширяемым.
Настраиваемые разделители тэгов шаблона, то есть вы можете использовать {}, {{}}, <!--{}-->, и т.д.
Конструкции if/elseif/else/endif конструкции передаются обработчику PHP, так что синтаксис выражения {if ...} может быть настолько простым или сложным, насколько вам угодно.
Допустимо неограниченное вложение секций, условий и т.д.
Существует возможность включения PHP-кода прямо в ваш шаблон, однако обычно в этом нет необходимости (и это не рекоммендуется), так как движок весьма гибок и расширяем.
Встроенный механизм кэширования.
Произвольные источники шаблонов.
Пользовательские функции кэширования.
Компонентная архитектура.

Sam
22.02.2006, 11:55
Замечательная штука. Пользуюсь второй год. Есть вопросы - спрашивайте.

Ibiss
17.07.2006, 18:33
Sam, как пользоваться?

J.Carot
17.07.2006, 19:56
Sam, как пользоваться?
:acute:

J.Carot
28.08.2006, 18:58
http://www.google.ru/search?hl=ru&q=smarty+%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B 8%D0%B7%D0%B0%D1%82%D0%BE%D1%80&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=

s1mon
13.09.2006, 09:49
Я разочаровался в этой штуке. Слишком медленная. Да и самому можно сделать шаблонизатор, ничего сложного в этом нету.

Formazon
05.12.2006, 09:42
Удачно пользуюсь, написали на нем CMS - все устраивает:)

Bum3r
30.01.2007, 11:35
сейчас поставлю и отпишусь:)

s1mon
30.01.2007, 13:34
Забираю свои слова обратно... Сейчас полностью разобрал весь функционал, установил последнюю версию - отличнейшая вещь... Нужно только еще грамотней понять принципы кэширования, и будет все на ура!