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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Діаграма, що ілюструє всі основні елементи та обробку потоку шаблонного двигуна.

Шаблонізатор — це програмне забезпечення, призначене для поєднання шаблонів із моделлю даних для створення результативних документів.[1][2][3]Мова, якою написані шаблони, відома як мова шаблону. Ціллю цієї статті є результативний документ — це будь-який вид відформатованої вихідної інформації, у тому числі документи, вебсторінки або вихідний код (у генерації вихідного коду), цілком або фрагментами. Шаблонний рушій зазвичай включається як частина системи вебшаблонів або схеми додатків, і може використовуватися також як препроцесор або фільтр.

Типові функції[ред. | ред. код]

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

Такі функції включають:

  • змінні та функції
  • заміна тексту
  • файл включення (або вставки)
  • умовна оцінка та цикли

Вбудовані шаблонні рушії[ред. | ред. код]

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

Прості приклади включають в себе рядки формату printf, знайдені на багатьох мовах програмування, та фрагменти, знайдені в ряді текстових редакторів і у редакторі вихідного коду. У текстових процесорах шаблони є загальною функцією, тоді як автоматичне заповнення шаблонів часто називають злиттям пошти.

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

Системні елементи[ред. | ред. код]

Усі системи обробки шаблонів складаються з принаймні цих основних елементів:

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

Модель даних[ред. | ред. код]

Це може бути реляційна база даних, вихідний файл, такий як XML, альтернативний формат плоскої файлової бази даних, електронна таблиця або будь-яке інше різноманітне джерело попередньо відформатованих даних. Деякі системи обробки шаблонів обмежені типом даних, які можуть бути використані. Інші призначені для максимальної гнучкості та дозволяють використовувати різні типи даних.

Шаблон джерела[ред. | ред. код]

Шаблони джерел традиційно вказані:

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

Шаблон рушія[ред. | ред. код]

Шаблон рушія відповідає за:

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

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

Використання[ред. | ред. код]

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

Шаблон рушія[ред. | ред. код]

Шаблонний рушій — це специфічний модуль обробки шаблонів, який демонструє всі основні характеристики сучасної мови програмування. Термін «рушій шаблону» розвивався як узагальнений опис мов програмування, основною або винятковою метою якого було обробляти шаблони та дані для виведення тексту. Використання цього терміну найчастіше застосовується до веброзробки за допомогою системи вебшаблонів, а також застосовується до інших контекстів.[4]

Створення документа[ред. | ред. код]

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

Створення вихідного коду[ред. | ред. код]

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

Програмне забезпечення[ред. | ред. код]

Вебшаблон рушія обробляє вебшаблони та вихідні дані (як правило, з реляційної бази даних) для створення одного або декількох вихідних вебсторінок або фрагментів сторінки. Він зазвичай включається як частина системи вебшаблонів або як додаток фреймворка. На даний час програмне забезпечення для обробки шаблонів найчастіше використовується в контексті веброзробки.

Порівняння[ред. | ред. код]

XSLT — це модель обробки шаблонів, розроблена W3C. Вона призначена в першу чергу для перетворень даних XML (у вебдокумент або інший вихід).

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

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

Переваги використання шаблонних рушіїв[ред. | ред. код]

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

Примітки[ред. | ред. код]

  1. Niemeyer, Patrick (2002). Learning Java. Sebastopol: O'Reilly. ISBN 0-596-00285-8. 
  2. Manolescu, Dragos (2006). Pattern Languages of Program Design 5. Reading: Addison-Wesley Professional. ISBN 0-321-32194-4. 
  3. Fowler, Martin (2003). Patterns of Enterprise Application Architecture. Boston: Addison-Wesley. ISBN 0-321-12742-0. 
  4. (see e.g., Velocity, TemplateToolkit, Freemarker).
  5. JavaServer Pages is a technology released by Sun for use with the Java programming language.JavaServer Pages Technology. 10 жовтня 2006. Архів оригіналу за 26 червня 2012. Процитовано 10 жовтня 2006. 
  6. ASP 1.0 was originally released for use with Microsoft VBScript and JScript. It was an extension to Microsoft IIS.