Foxter.ru

Foxter.ru (https://www.foxter.ru/index.php)
-   Web-программирование (https://www.foxter.ru/forumdisplay.php?f=66)
-   -   Smarty. Шаблонизатор для PHP (https://www.foxter.ru/showthread.php?t=1146)

s1mon 06.02.2006 22:22

Smarty. Шаблонизатор для PHP
 
SMARTY



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



Foxter 06.02.2006 23:34

эммм... а линк на него можно? или краткое описание?

s1mon 07.02.2006 09:21

Foxter Конечно!


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).
Некоторые особенности Smarty:
  • Он очень быстр.
  • Он эффективен, так как обработчик PHP делает за него грязную работу.
  • Никакой лишней обработки шаблонов, они компилируются только один раз.
  • Перекомпилируются только те шаблоны, которые изменились.
  • Вы можете создавать пользовательские функции и модификаторы, что делает язык шаблонов чрезвычайно расширяемым.
  • Настраиваемые разделители тэгов шаблона, то есть вы можете использовать {}, {{}}, <!--{}-->, и т.д.
  • Конструкции 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

Цитата:

Сообщение от Ibiss (Сообщение 21063)
Sam, как пользоваться?

:acute:

J.Carot 28.08.2006 18:58

http://www.google.ru/search?hl=ru&q=...%B2+Google&lr=

s1mon 13.09.2006 09:49

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

Formazon 05.12.2006 09:42

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

Bum3r 30.01.2007 11:35

сейчас поставлю и отпишусь:)


Часовой пояс GMT +3, время: 15:58.

Powered by vBulletin
Copyright ©2000-2024, Jelsoft Enterprises Ltd.