System Szablonów
System szablonów System szablonów to biblioteka, która pozwala oddzielić warstwę prezentacji od warstwy logicznej. Aplikacja WWW najpierw pobiera wszystkie dane, przetwarza je i umieszcza w systemie szablonów wraz z informacją o tym, jakiego szablonu użyć. System szablonów wczytuje szablon i wykonuje go, osadzając w nim dane ze skryptu. Wynikiem jest gotowy kod, który jest wysyłany do przeglądarki.
Szablon Jest plik tekstowy, rodzaj skryptu zawierający kod wysyłany do przeglądarki oraz reguły mówiące, jakie dane gdzie umieścić. W fazie projektowej może mieć postać pliku graficznego. Oczywiście do wyrażania tych reguł potrzebny jest jakiś dodatkowy meta-język i ze względu na niego możemy wyróżnić dwa główne rodzaje systemów szablonów: PHP jako język szablonów - reguły osadzania danych opisywane są przy pomocy zwykłych wstawek kodu PHP. Dedykowany język szablonów - system szablonów wprowadza specjalny język do zapisu reguł oraz dostarcza parser (tj. analizator) do jego przetwarzania.
Zasada Działania Szablon jest to zwykły plik tekstowy, posiadający kawałek kodu, np. HTML. Umieszczone są w nim specjalne znaczniki mówiące, w których miejscach należy wstawić dane z aplikacji oraz jak przetwarzać cały szablon. Aplikacja WWW pobiera i przetwarza dane, po czym przekazuje je do parsera szablonów wraz z informacją, jaki szablon ma być użyty do ich wyświetlenia. Parser wczytuje szablon i umieszcza przekazane dane w znacznikach, a gotowy kod wysyła do przeglądarki.
Rodzaje systemów szablonów Systemy szablonów nie działają samodzielnie. Najczęściej wchodzą w skład frameworków lub współpracują z nimi, dzięki czemu możliwa jest duża automatyczna wymiana informacji między nimi. Niektóre języki programowania, np. Java, Ruby czy C posiadają wbudowany systemy szablonów, albo też udostępniają je dzięki dodatkowym bibliotekom i modułom. JSP, PHP i ASP same w sobie są już systemami szablonów, aczkolwiek dla nich również powstaje szereg alternatywnych rozwiązań.
Typowe możliwości Większość systemów szablonów posiada możliwości podobne do tradycyjnych języków programowania, tj. pętle, zmienne, instrukcje warunkowe, z głównym naciskiem położonym na przetwarzanie tekstu. W ten sposób twórcy szablonów mają bardzo duże możliwości manipulacji kodem bez konieczności modyfikowania właściwego kodu źródłowego aplikacji. Na dłuższą metę czyni to jednak szablony wysoce nieczytelnymi i nieprzenośnymi, dlatego niektóre biblioteki dostarczają również wysokopoziomowych rozwiązań, których celem jest ograniczenie ilości programistycznych konstrukcji do absolutnego minimum.
Podział aplikacji na część logiczną i prezentacyjną niesie istotne korzyści: Ułatwia rozwój właściwego kodu aplikacji. Szablony mogą być opracowywane niezależnie od samej aplikacji Aplikacja może posiadać kilka zestawów szablonów, a przełączanie między nimi jest łatwiejsze. Należy się liczyć z mniejszą wydajnością niezbędną na załadowanie dodatkowych bibliotek oraz wczytywanie osobnych plików.