Шаблонизатор (в web) — это программное обеспечение, позволяющее использовать html-шаблоны для генерации конечных html-страниц.
Основная цель использования шаблонизаторов — это отделение представления данных от исполняемого кода. Часто это необходимо для обеспечения возможности параллельной работы программиста и дизайнера-верстальщика. Такой подход значительно ускоряет время разработки и прототипирования приложения, дизайнеру не нужно вникать в программирование, а программисту беспокоиться об интерфейсе.
Использование шаблонизаторов улучшает читаемость кода и упрощает внесение изменений во внешний вид, когда проект целиком выполняет один человек.
Свою популярность шаблоны обрели с приходом фреймворка Ruby On Rails и стали популярны не только в Вебе, современные десктопные приложения тоже идут по пути отделения логики программы от интерфейса, например библиотека Electron позволяет создавать GUI приложения с интерфейсом, написанном на HTML + JavaScript и логикой на NodeJS, по сути встраивая движок Chromium в ваш исполняемый файл.
Другим примером является фреймворк Qt, в котором интерфейс может быть
написан на Qml + JavaScript и запускаться независимо от основного
приложения при помощи утилиты qmlscene
. Компания Microsoft также
продвигает эту идею в .Net, предоставляя технологию WPF. Как мы
видим, некоторые принципы, ранее встречающиеся преимущественно в Вебе,
перенимаются другими областями программирования. Тем самым с развитием
Интернет Веб-технологии будут все больше влиять на программирование в целом.
Шаблоны имеют очень простое определение — в статические файлы вставляются куски кода, а при прогоне таких файлов через специальный транслятор (препроцессор), код заменяется результатом его выполнения. Например, при компиляции шаблоны в C++ заменяются определенными значениями:
template< typename T >
T min( T a, T b )
{
return a < b ? a : b;
}
Перед компиляцией этот шаблон может принять такой вид:
int min( int a, int b )
{
return a < b ? a : b;
}
long min( long a, long b )
{
return a < b ? a : b;
}
Если Ruby развивался как полноценный, интерпретируемый язык общего назначения, который потом обрел фреймворк Ruby On Rails и наконец систему шаблонов, то PHP изначально был языком шаблонов, т.е. препроцессором, через который можно прогнать любой файл (например, HTML со вставками PHP) и получить результат.
Простой пример на PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <html>
<head>
<title>
Тестируем PHP
</title>
</head>
<body>
<?php
echo '<h1>Hello, world!</h1>';
?>
<br />
<?php
$colors = array("red", "green", "blue", "yellow");
foreach ($colors as $value) {
echo "* $value <br />\n";
}
?>
</body>
</html> |
Результат выполнения программы:
<html>
<head>
<title>
Тестируем PHP
</title>
</head>
<body>
<h1>Hello, world!</h1>
<br />
* red <br />
* green <br />
* blue <br />
* yellow <br />
</body>
</html>