stringtranslate.com

Процессор шаблонов

Диаграмма, иллюстрирующая все основные элементы и поток обработки шаблонизатора.

Процессор шаблонов (также известный как шаблонизатор или анализатор шаблонов ) — это программное обеспечение, предназначенное для объединения шаблонов с данными (определяемыми моделью данных ) для создания результирующих документов или программ . [1] [2] [3] Язык, на котором написаны шаблоны, известен как язык шаблонов или язык шаблонизации . Для целей этой статьи результирующий документ — это любой вид форматированного вывода, включая документы , веб-страницы или исходный код (при генерации исходного кода ), как целиком, так и фрагментами. Шаблонизатор обычно включается как часть системы веб-шаблонов или фреймворка приложения и может также использоваться как препроцессор или фильтр .

Типичные черты

Шаблонизаторы обычно включают функции, общие для большинства языков программирования высокого уровня , с упором на функции обработки простого текста .

К таким особенностям относятся:

Встроенные шаблонизаторы

В то время как шаблонные процессоры обычно являются отдельной частью программного обеспечения, используемой как часть системы или фреймворка, простые языки шаблонизации обычно включаются в функции обработки строк языков программирования общего назначения и в программы обработки текста, в частности текстовые редакторы или текстовые процессоры . Шаблонные языки, как правило, являются простыми языками только подстановки, в отличие от более сложных возможностей в полноценных шаблонных процессорах, но могут содержать некоторую логику.

Простые примеры включают строки формата печати 'printf' , которые встречаются во многих языках программирования, и фрагменты , которые встречаются в ряде текстовых редакторов и редакторов исходного кода . В текстовых процессорах шаблоны являются общей функцией, в то время как автоматическое заполнение шаблонов часто называют слиянием почты .

Наглядным примером взаимодополняющей природы разбора и шаблонизации является sкоманда (substitute) в текстовом процессоре sed , происходящая от поиска и замены в текстовом редакторе ed . Команды подстановки имеют вид s/regexp/replacement/, где regexpрегулярное выражение , для разбора ввода, а replacement— простой шаблон для вывода, либо литерального текста, либо строки формата, содержащей символы &для «полного совпадения» или специальные управляющие последовательности \1 до \9n - го подвыражения. Например, s/(cat|dog)s?/\1s/gзаменяет все вхождения «cat» или «dog» на «cats» или «dogs», не дублируя существующее «s»: (cat|dog)— первое (и единственное) подвыражение в регулярном выражении, а \1в строке формата подставляет его в вывод.

Элементы системы

Все системы обработки шаблонов состоят как минимум из следующих основных элементов:

Модель данных

Это может быть реляционная база данных , исходный файл, такой как XML , альтернативный формат базы данных плоских файлов , электронная таблица или любой другой из различных источников предварительно отформатированных данных. Некоторые системы обработки шаблонов ограничены в типах данных, которые могут быть использованы. Другие разработаны для максимальной гибкости и допускают множество различных типов данных.

Исходный шаблон

Традиционно указываются исходные шаблоны:

Шаблонизатор

Шаблонизатор отвечает за:

Кроме того, некоторые шаблонизаторы допускают дополнительные параметры конфигурации.

Итоговые документы

Они могут состоять из целого документа или его фрагмента.

Использует

Обработка шаблонов используется в различных контекстах для различных целей. Конкретная цель обычно зависит от используемого программного приложения или шаблонизатора. Однако гибкость систем обработки шаблонов часто допускает нетрадиционное использование для целей, изначально не предусмотренных первоначальными разработчиками.

Шаблонизатор

Шаблонный движок — это особый вид модуля обработки шаблонов, который демонстрирует все основные особенности современного языка программирования . Термин шаблонный движок развился как обобщенное описание языков программирования, чьей основной или исключительной целью была обработка шаблонов и данных для вывода текста. Использование этого термина наиболее заметно применяется к веб-разработке с использованием системы веб-шаблонов , а также он применяется и в других контекстах. [4]

Генерация документов

Среды генерации документов обычно используют обработку шаблонов в качестве центральной модели для генерации документов.

Генерация исходного кода

Инструменты генерации исходного кода поддерживают генерацию исходного кода (в качестве результирующих документов) из абстрактных моделей данных (например, UML, реляционных данных, хранилищ корпоративных данных, специфичных для предметной области) для конкретных доменов приложений, конкретных организаций или для упрощения производственного процесса для программистов .

Функциональность программного обеспечения

Веб - шаблонный движок обрабатывает веб-шаблоны и исходные данные (обычно из реляционной базы данных ) для создания одной или нескольких выходных веб-страниц или фрагментов страниц. Обычно он включается как часть системы веб-шаблонов или прикладной среды . В настоящее время программное обеспечение для обработки шаблонов чаще всего используется в контексте разработки для веб .

Сравнение

XSLT — это модель обработки шаблонов, разработанная W3C . Она разработана в первую очередь для преобразований XML- данных (в веб-документы или другой вывод).

Такие языки программирования, как Perl , Python , PHP , Ruby , C# , Java и Go, поддерживают обработку шаблонов как изначально, так и через дополнительные библиотеки и модули. JavaServer Pages , [5] Active Server Pages , [6] Genshi (для Python) и eRuby являются примерами шаблонизаторов, разработанных специально для разработки веб-приложений.

Более того, обработка шаблонов иногда включается в качестве дополнительной функции в такие программные пакеты, как текстовые редакторы , IDE и системы управления реляционными базами данных .

Преимущества использования шаблонизаторов

Смотрите также

Ссылки

  1. ^ Нимейер, Патрик (2002). Изучение Java . Севастополь: O'Reilly. ISBN 0-596-00285-8.
  2. ^ Манолеску, Драгос (2006). Шаблонные языки проектирования программ 5. Чтение: Addison-Wesley Professional. ISBN 0-321-32194-4.
  3. ^ Фаулер, Мартин (2003). Модели архитектуры корпоративных приложений . Бостон: Addison-Wesley. ISBN 0-321-12742-0.
  4. ^ (см., например, Velocity, TemplateToolkit, Freemarker).
  5. ^ JavaServer Pages — это технология, выпущенная Sun для использования с языком программирования Java. "JavaServer Pages Technology". 2006-10-10 . Получено 2006-10-10 .
  6. ^ ASP 1.0 изначально был выпущен для использования с Microsoft VBScript и JScript. Это было расширение для Microsoft IIS.

Внешние ссылки