Smarty, пристальный взгляд на функции.

Доменные имена Доменные имена
Источник бесперебойного хостинга
started - надежный регистратор доменных имен
Хостинг от cityhost.com.ua
Реклама на Karman.com.ua
Тел.: +38 (066) 370-05-89
ICQ: 271717692
karman.com.ua - Хостинг в Украине
форум о хостинге в Украине

Здравствуйте, гость ( Вход | Регистрация )

Есть вопросы о хостинге и о сайтах?

и получи ответ от профессионалов, которые обожают помогать людям :).
 
Ответить в данную темуНачать новую тему
> Smarty, пристальный взгляд на функции.
AcTEpi_X
сообщение 18.9.2008, 17:39. Re: Smarty, пристальный взгляд на функции.
Сообщение #1


Любимый доктор хостинга
******

Группа: Любимый хостинг-ROOT
Сообщений: 1 275
Регистрация: 11.2.2008
Пользователь №: 887



Smarty — компилирующий обработчик шаблонов для PHP, один из инструментов, позволяющих отделить прикладную логику и данные от представления в духе концепции Model-view-controller.

Например, вы создаёте страницу, которая показывает газетную статью. Название статьи, автор и сама статья — элементы, которые не содержат никакой информации о том, как они будут представлены. Их передают в Smarty из приложения, а верстальщик шаблона редактирует шаблоны и использует комбинацию тегов HTML и тегов шаблона, чтобы отформатировать представление этих элементов (таблицы HTML, фоновые цвета, размеры шрифта, стиля и т. д.). Однажды программист захочет изменить способ хранения статьи (сделать изменения в логике приложения). Это изменение не вызовет изменений в шаблонах. Содержание будет все еще передаваться в шаблон таким же самым способом. Аналогично, если верстальщик захочет полностью перепроектировать шаблоны, это не потребует никаких изменений в прикладной логике.

Одно из предназначений Smarty — это отделение логики приложения от представления. Конечно же, шаблоны могут содержать в себе логику, но лишь при условии, что эта логика необходима для правильного представления данных. Такие задачи, как подключение других шаблонов, чередующаяся окраска строчек в таблице, приведение букв к верхнему регистру, циклический проход по массиву для его отображения и т. д. — всё это является примером логики представления. Не следует думать, что Smarty заставляет вас разделять логику приложения и представление. Smarty не видит разницы между этими вещами, так что помещать или не помещать логику приложения в шаблоны — решать вам. Если же вы считаете, что в шаблоне вообще не должно быть логики, вы можете ограничиться использованием чистого текста и переменных.

Одна из уникальных возможностей Smarty — компилирование шаблонов. Это означает, что Smarty читает файлы шаблонов и создаёт PHP-код на их основе. Код создаётся один раз и потом только выполняется. Поэтому нет необходимости обрабатывать файл шаблона для каждого запроса и каждый шаблон может пользоваться всеми преимуществами таких кешируюших решений, как eAccelerator или PHP Accelerator.

Некоторые особенности Smarty:

* Он очень быстр.
* Он эффективен, так как обработчик PHP делает за него грязную работу.
* Никакой лишней обработки шаблонов, они компилируются только один раз.
* Перекомпилируются только те шаблоны, которые изменились.
* Можно создавать пользовательские функции и модификаторы, что делает язык шаблонов чрезвычайно расширяемым.
* Настраиваемые разделители тегов шаблона, то есть вы можете использовать {}, {{}}, и т. д.
* Конструкции if/elseif/else/endif передаются обработчику PHP, так что синтаксис выражения {if …} может быть настолько простым или сложным, насколько вам угодно.
* Допустимо неограниченное вложение секций, условий и т. д.
* Существует возможность включения PHP-кода прямо в ваш шаблон, однако обычно в этом нет необходимости (и это не рекомендуется), так как движок весьма гибок и расширяем.
* Встроенный механизм кеширования.
* Произвольные источники шаблонов.
* Пользовательские функции кеширования.
* Компонентная архитектура.


HTML-страница с тегами Smarty

Код
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
   <title>{$title_text}</title>
   <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>

<body> {* Комментарий, которого не будет в HTML коде *}

<p>{$body_text}</p>

</body><!-- Комментарий, который будет в HTML коде -->
</html>


Логика работы в PHP-скрипте ниже:

Код
define('SMARTY_DIR', 'smarty-2.6.9/' );
require_once(SMARTY_DIR . 'Smarty.class.php');

$smarty = new Smarty();
$smarty->template_dir = './templates/';
$smarty->compile_dir = './templates/compile/';
$smarty->cache_dir = './templates/cache/';
$smarty->caching = false;
$smarty->error_reporting = E_ALL; // LEAVE E_ALL DURING DEVELOPMENT
$smarty->debugging = true;

$smarty->assign('title_text', 'TITLE: Пример использования Smarty ...');
$smarty->assign('body_text', 'BODY: Это текст, выведенный ф-цией assign()');

$smarty->display('index.tpl');


Источник: wikipedia.org
Перейти в начало страницы
 
+Цитировать сообщение
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
Похожие темы:
Последнее сообщение Какими функциями должен обладать мененджер закачек?
Design by: Free IPB Skins & Web Proxy & © Karman.com.ua Rambler's Top100