Smarty

Скриншот программы:
Smarty
Детали программы:
Версия: 3.1.5
Дата загрузки: 11 May 15
Разработчик: New Digital Group, Inc.
Тип распространения: Бесплатная
Популярность: 1

Rating: nan/5 (Total Votes: 0)

Smarty на самом деле не "Шаблон двигателя", это было бы более точно описано как "шаблон / Presentation Framework." То есть, она обеспечивает программиста и дизайнера шаблона с богатством инструментов для автоматизации задач, обычно рассматриваемые в презентации слой приложения. Я подчеркиваю слово Framework, потому что Smarty не простой тег-замена механизм шаблонов. Хотя он может быть использован для такого простого целью его внимание на быстрый и безболезненный разработки и развертывания приложения, сохраняя высокую производительность, масштабируемость, безопасность и будущий рост.
Так Smarty для вас? Что это сводится к тому, с помощью правильного инструмента для работы. Если вы хотите простой переменной замену, вы можете посмотреть на что-то более простой или даже свернуть свой собственный. Если вы хотите прочная основа шаблонов с многочисленными инструментами, чтобы помочь вам, как ваше приложение развивается в будущем, скорее всего, Smarty является хорошим выбором.
Почему его использовать?
Один из Smartys целей первичной дизайн для облегчения разделения кода приложения от представления. Как правило, код приложения содержит бизнес-логику приложения, написанные и поддерживается в PHP кода. Этот код сохраняется программистами. Презентация это способ ваш контент представлен для конечного пользователя, который написан и поддерживается в файлах шаблонов. Шаблоны поддерживаются дизайнеров шаблонов.
На самом основной функции, код приложения собирает контент, назначает его в шаблон двигателя и отображает ее. Содержание может быть что-то вроде заголовок, слоган, автор и тело газетной статье. Код приложения не имеет никакого отношения, как это содержание будет представлено в шаблоне. Шаблон дизайнер отвечает за представление. Они редактировать файлы шаблона, добавив разметку и доведения ее до завершения. Это обычно включает в себя такие вещи, как HTML-теги, каскадных таблиц стилей и других инструментов, предоставляемых шаблона двигателя.
Эта парадигма служит нескольким целям:
) Дизайнеры не может нарушить код приложения. Они могут связываться с шаблонами все они хотят, но код остается без изменений. Код будет крепче, более безопасным и легче поддерживать.
) Ошибки в шаблонах приурочены к подпрограмм обработки ошибок Smartys, что делает их максимально простой и интуитивно понятным для дизайнера.
) С презентацией на своем слое, дизайнеры могут изменить или полностью перепроектировать его с нуля, все без вмешательства программиста.
Программисты) не возиться с шаблонами. Они могут пойти о поддержании кода приложения, изменив способ контент, приобретенный, создание новых бизнес-правил и т.д., не нарушая слой представления.
) Шаблоны близкий представление о том, что окончательный вывод будет, что является интуитивный подход. Дизайнеры не волнует, как содержание попал в шаблоне. Если у вас есть лишние данные в шаблоне, такие как SQL заявлении, это открывает риск поломать код приложений, случайного удаления или изменения дизайнером.
) Вы не открывая сервер к исполнению произвольного кода PHP. Smarty имеет множество функций безопасности, построенных в так дизайнеров не нарушит безопасность, намеренное или случайное. Они могут только делать то, что они ограничены в шаблонах.
Хотя код приложения отделен от представления, это не обязательно означает, что логика отделена. Код приложения, очевидно, имеет логику, но шаблоны могут иметь логику, в зависимости от состояния, что это только для презентации. Например, если дизайнер хочет чередовать цвета строки таблицы или прописные некоторые назначен контента, они могут. Это логика представления, кое-что программист не должен быть связан с. Как часто ты некоторое представление отображается в одном столбце, а затем вы хотели его в две или три колонки, так что код приложения должен регулировать, чтобы приспособить это? Лучше, чтобы назначить содержание в одном массиве и пусть шаблон обрабатывать представление. Это упростит вашу заявку и держать ваши шаблоны гибким. Smarty поставляет инструменты, чтобы обращаться с этим видом ситуации.
Это не означает, что Smarty мешает вам от сдачи логики приложения в шаблоне, вы должны иметь немного самодисциплины. Вот пример встраивания бизнес-логики в шаблоне (это верно, не делать этого, если это вообще возможно):
{если $ smarty.session.user и ($ user_type экв "редактор", или $ user_type экв "админ")}
<Тип входного = имя флажок = Изменить значение = "Y"> редактировать
{/если}
Логические проверяет, если пользователь вошел в систему, и они являются либо редактор или администратор, то они могут редактировать это так, редактирование флажок показывает вверх. Это логика, которая принадлежит в коде приложения. Шаблон не волнует то, что учетные данные этот пользователь имеет, он просто должен знать, если отображается окно редактирования или нет! Итак, давайте рассмотрим более подходящего подхода:
{если $ edit_flag}
<Тип входного = имя флажок = Изменить значение = "Y"> редактировать
{/если}
Это до прикладного программиста, чтобы назначить $ edit_flag, простой и легкий для понимания переменную в шаблоне. Таким образом не шаблон больше не полагается на структуре данных. Если формат структуры данных сессии когда-либо изменения, то ничего не нужно регулировать в шаблоне.
Теперь давайте рассмотрим несколько вещей, которые вы можете сделать с Smarty. Единственное, что он может сделать, это пользовательские функции. Эти теги в шаблоне, которые выполняют определенную задачу. Пример:
{html_image файл = "masthead.gif"}
Здесь у нас есть функция под названием "html_image". Эта функция принимает изображение приводится в атрибуте "файл" и делает всю работу, необходимую, чтобы придумать следующий HTML код:

Функция изображения сделал рутинную работу выяснить высоту и ширину и поставке пограничного умолчанию флаг. Конечно, вы могли бы просто использовать статическую тег HTML в шаблоне вместо, но это показывает, как пользовательская функция может быть использована для упрощения очень общую задачу. Дизайнер может сосредоточиться на разработке, а не на технические вещи. Кроме того, если дизайнер решает бросить в другом размер топового изображения, шаблон не нуждается в корректировке.
html_image это функция, которая поставляется с Smarty. Вы также можете сделать свои собственные функции. Вот еще один пример того, что можно было бы выглядеть так:
{тип html_link = "статья" ID = "абв123" текст = "Огонь вынимает отель"}
Это использование пользовательскую функцию под названием "html_link". Это приходит с следующий код:
<А HREF = "/ display_article.php? ID = абв123"> Пожар вынимает отель
Что это выполнить? С одной стороны, проектировщик не нужно иметь дело с формате URL к статье. С жестко-закодированных адресов, что произойдет, если один день программист решает очистить вещи, и изменяет синтаксис URL от /display_article.php?id=abc123 к / искусство / абв123? Мы должны были бы редактировать каждый шаблон с артикля URL. Это просто еще один пример того, как шаблон функции может сделать шаблоны легче поддерживать.
Теперь немного о программистов и шаблонов. Ранее было отмечено, что программист не имеет никакого ухода за то, что шаблоны делают с содержанием. На концептуальном уровне это верно, но в реальном мире вы не собираетесь ожидать шаблона дизайнера, чтобы построить все шаблоны из воздуха. В конце концов, бизнес-логика делает определения содержимого присваивается шаблонов. Таким образом, программист обычно настройки шаблонов каркасно для дизайнера, чтобы начать с. Это, как правило, содержит исходные элементы, такие как переменные контента и раздела петель, и, может быть, несколько простых тегов разметки, чтобы они не начинают с содержанием в большом беспорядке. Ниже приведен пример шаблона скелета, что просматривает список статей, и отображает их в виде таблицы:
<Таблица>
{Название раздела = искусство цикл = $ статья}

{$ статье [искусство] .headline}
{$ статье [искусство] .date}
{$ статье [искусство] .author}

{/раздел}

Выход может выглядеть примерно так:
<Таблица>

Как был завоеван Запад
2 декабря 1999
Джон Уэйн


теряет Команда, тренер уходит
2 февраля 2002
Джон Смит


Приготовление изысканной пищи
23 января 1954
Бетти Крокер


Теперь для некоторых общих вопросов:
Почему использовать шаблоны вообще? Что так трудно писать о Вместо {$ Title}?
Создание вещи проще для чтения не было целью дизайна, но больше побочных эффектов. Использование шаблонов имеет огромные преимущества, многие из которых были объяснены выше. Поскольку мы находимся в среде шаблона в любом случае, {$ Title} меньше, чем посторонний , Особенно, когда вы начинаете смотреть на него в длинных страниц контента, так что это было довольно очевидно, что проще синтаксис помогает сделать шаблоны проще читать и поддерживать.
Шаблон потребуется время, чтобы разобрать, что делает приложения гораздо медленнее.
Это может быть верно в некоторых случаях, но с Smarty это не медленнее, чем выполнение сценария PHP. На первом выполнении шаблона, Smarty преобразует файлы шаблонов в PHP скриптах (так называемый шаблон компиляция.) После этого, сценарий PHP просто включены. Пара это с PHP ускорителя и вас действительно есть быстрый шаблонов среды с минимальными затратами.
Smarty является слишком сложным, как это может быть, что быстро?
Ядро Smarty является довольно худой учитывая то, что он способен. Большая часть его функциональности заключается в плагинах. Архитектура плагин разработан так, что только необходимые плагины загружаются по требованию. С этой рамки, добавление даже сотни новых плагинов не будет влиять на производительность. Это делает Smarty быстро, масштабируемой и гибкой.
Smarty также имеет функции кэширования, которые могут динамически обновить и сохранить части страницы Uncached на свой вкус. Кэширование хранит вывод из скомпилированных шаблонов, экономя необходимость их выполнение на каждом вызове.
Все эти разговоры о ускорителей, каким Smarty работать без одного?
На самом деле он работает довольно хорошо, не один. Smarty не требует ускоритель, но шаблон сами файлы будут воспользоваться одним, то, что является уникальным для Smarty (AFAIK). Если у вас нет ускоритель, выполнение шаблон не так быстро, но не медленно с помощью любых средств, так как они не анализируется! Вы также сохранить все другие преимущества и особенности Smarty. Кроме того, поскольку ускорители свободно доступны на самом деле не является оправданием для не с помощью одного. Они помогут производительность со всеми PHP-приложений, с помощью Smarty или нет.
Как это может быть легче поддерживать?
Некоторые вещи не могут быть объяснены, но только опытные. Преимущество разделения логики приложения от представления не может быть подчеркнуто достаточно. Smarty также имеет некоторые интересные особенности обработки ошибок и встроенный в консоли отладки, так что вы можете видеть шаблон иерархию и присвоенные переменные с первого взгляда. Добавление пользовательских функций для Smarty так же легко, как удаление их в папке плагина и отметить их в шаблоне.
Теги шаблонов не XML-основе, Мой редактор не нравится.
В {} разделители просто по умолчанию, они легко различить среди HTML тегов. Если вам не нравится их, изменить разделители или, может быть, что-то более XMLish как Есть также много взносов пользователей для Dreamweaver и т.п., дать им вид в области вклад.
Это Smarty в двух словах, мы надеемся, вы можете добавить его в свой арсенал инструментов для создания веб-приложений. Чтобы действительно узнать больше, прочтите руководство сверху донизу, присоединиться к форумы и посмотреть, что люди обсуждают

Особенности :.

  • Кэширование: Smarty предоставляет детальные возможности кэширования для кэширования всех или части выводимого веб-страницы, или оставить части некэшированным. Программисты могут зарегистрироваться шаблон функции, как кэшируемые или не кэшируемым, страниц в кэше группы в логические единицы для более легкого управления, и др.
  • Файлы конфигурации: Smarty может назначить переменные вытащил из конфигурационных файлов. Шаблон дизайнеры могут поддерживать значения, общие для нескольких шаблонов в одном месте без вмешательства программиста, и конфигурационные переменные могут быть легко разделены между программирования и презентационных области приложения.
  • Безопасность: Шаблоны не содержат PHP код. Таким образом, дизайнер шаблонов не развязали с полной силой PHP, но только подмножество функциональности доступны для них из программатора (код приложения).
  • Простота в использовании и обслуживании: дизайнеры веб-страницы не имеем дело с синтаксисом PHP кода, но вместо простой в использовании синтаксис шаблонов не сильно отличается, чем обычный HTML. Шаблоны очень близко представление конечной продукции, резко сокращая цикл проектирования.
  • Переменные Модификаторы: Содержание назначенных переменных может быть легко скорректированы на дисплей времени с модификаторами, такие как отображение в верхнем регистре, HTML-бежал, форматирование даты, усечения текстовых блоков, добавляя пробелы между символами и т.д. Опять это достигается без вмешательства со стороны программиста.
  • Шаблон Функции: Многие функции доступны для шаблона дизайнера для решения задач, такие как создание сегментов HTML код (Dropdowns, таблицы, всплывающие окна и т.д.), отображения контента из других шаблонов в он-лайн, обработке массивов контента , форматирования текста для электронной почты выхода, езда на велосипеде, хотя цвета, т.
  • Фильтры:. Программист имеет полный контроль над выходом шаблона и составленный контент шаблона с заранее фильтров, почтовых фильтров и выходных фильтрах
  • Ресурсы:. Шаблоны могут быть выведены из любого количества источников, создавая новые обработчики ресурсов, то их использование в шаблонах
  • Плагины: Почти каждый аспект Smarty контролируется посредством использования плагинов. Они, как правило, так просто, как снижается их в папке плагина, а затем отметить их в шаблоне или использовать их в коде приложения. Многие взносы пользователем сообщества, также доступны. (Смотрите раздел плагины на форуме и вики).
  • Дополнения: Многие пользователи сообщество способствовало Дополнения имеются такие, как Pagination, форма проверки, выпадающее меню, Calander выбора даты и т.д. Эти инструменты помогают ускорить цикл разработки, там нет необходимости повторно изобретать колесо или отладки кода, который уже стабильна и готова к развертыванию. (см дополнений раздел форума и вики.)
  • Отладка: Smarty. поставляется с встроенным в консоль отладки, поэтому дизайнер шаблонов может видеть все, назначенных переменных и программист может исследовать шаблоны рендеринга скорости
  • Компиляция:. Smarty компилирует шаблоны в PHP код за кулисами, устраняя время выполнения разбора шаблонов
  • Производительность: Smarty выполняет очень хорошо, несмотря на его обширной набором функций. Большинство возможностей Smarty лежат в плагинов, которые загружаются по требованию. Smarty поставляется с многочисленными инструментами презентации, минимизируя код приложения и в результате более быстрого, более защищенный от ошибок приложений развития / развертывания. Шаблоны Smarty компилируются в PHP файлы внутри (один раз), устраняя дорогостоящие сканирование файлов шаблона и используя скорость PHP оп-кода ускорителей.

Что нового В этом выпуске:

  • вернуться супер глобальные изменения доступа и вместо этого полагаются на USE_SUPER_GLOBALS для Безопасность

Что нового в версии 2.6.23:

  • полоса обратные кавычки из {} математике уравнений (mohrt)
  • бросок ошибка при шаблон существует, но не читается (mohrt)

Что нового в версии 2.6.22:

  • Этот релиз решает проблему столкнулся с Smarty 2.6 .21 релиз и двигатель ошибка PCRE в PHP 5.2. Метод цепочки была удалена, чтобы избежать ошибки. Метод цепочки вновь появится в Smarty 3.

Другие программы разработчика New Digital Group, Inc.

Smarty
Smarty

13 Apr 15

Комментарии к Smarty

Комментарии не найдены
добавить комментарий
Включите картинки!