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

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

Типичные особенности [ править ]

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

К таким функциям относятся:

Встроенные механизмы шаблонов [ править ]

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

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

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

Системные элементы [ править ]

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

  • ассоциированная модель данных ;
  • один или несколько исходных шаблонов ;
  • процессор или шаблонизатор ;
  • сформированный вывод в виде итоговых документов .

Модель данных [ править ]

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

Исходный шаблон [ править ]

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

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

Шаблонизатор [ править ]

Механизм шаблонов отвечает за:

  • подключение к модели данных;
  • обработка кода, указанного в исходных шаблонах; а также
  • направление вывода в конкретный конвейер , текстовый файл или поток .

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

Документы результатов [ править ]

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

Использует [ редактировать ]

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

Шаблонизатор [ править ]

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

Генерация документа [ править ]

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

Генерация исходного кода [ править ]

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

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

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

Сравнение [ править ]

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

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

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

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

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

См. Также [ править ]

  • Автоматизация документооборота
  • Документальное моделирование
  • Предметно-ориентированный язык программирования
  • Глоссарий терминов операционных систем § Шаблоны
  • Интернационализация и локализация
    • Общий репозиторий данных локали
    • gettext
  • Компоновка двигателей
  • Макро (информатика)

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Обеспечение строгого разделения представления модели и представления в механизмах шаблонов