System szablonów
![]() | Ten artykuł od 2023-01 wymaga zweryfikowania podanych informacji. Należy podać wiarygodne źródła w formie przypisów bibliograficznych. Część lub nawet wszystkie informacje w artykule mogą być nieprawdziwe. Jako pozbawione źródeł mogą zostać zakwestionowane i usunięte. Sprawdź w źródłach: Encyklopedia PWN • Google Books • Google Scholar • Federacja Bibliotek Cyfrowych • BazHum • BazTech • RCIN • Internet Archive (texts / inlibrary) Dokładniejsze informacje o tym, co należy poprawić, być może znajdują się w dyskusji tego artykułu. Po wyeliminowaniu niedoskonałości należy usunąć szablon {{Dopracować}} z tego artykułu. |
System szablonów – rodzaj biblioteki programistycznej stosowanej w aplikacjach WWW do osadzania danych w szablonach prezentacyjnych, dzięki czemu internauta może oglądać kompletny wynik w swojej przeglądarce.
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. Obecnie biblioteki przetwarzania szablonów powstają głównie do celów tworzenia dynamicznych stron internetowych.
Niektóre języki programowania, np. Java, Ruby czy C albo posiadają wbudowane 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ń.
Zasada działania
Szablon jest zwyczajnym plikiem tekstowym zawierającym kawałek kodu wynikowego, np. HTML. Poumieszczane 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 lub innego miejsca, jeżeli programista tak zdecydował.
Typowe możliwości
Większość systemów szablonów posiada możliwości zbliżone 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ą przy odpowiednich umiejętnościach bardzo duże możliwości manipulacji kodem wynikowym 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, abstrakcyjnych rozwiązań, których celem jest ograniczenie ilości programistycznych konstrukcji do absolutnego minimum.
Kontrowersje
Systemy szablonów budzą kontrowersje zwłaszcza jeśli chodzi o języki PHP czy ASP, które w pierwotnych założeniach same miały być systemami szablonów. Projektom tego typu zarzuca się:
- Wzajemną niekompatybilność – istnieją dziesiątki systemów szablonów i prawie wszystkie używają autorskiej składni znaczników oraz rozwiązań w kwestii osadzania danych w szablonie.
- Trudności w opanowaniu – systemy szablonów właściwie zmuszają do nauki jeszcze jednego języka programowania.
- Utrudnianie pracy – część systemów szablonów poza typowymi konstrukcjami programistycznymi nie oferuje nic ponadto. Stawia to pod znakiem zapytania sens ich stosowania, skoro dokładnie to samo można zaprogramować bezpośrednio w używanym języku z identycznym skutkiem.
Zalety
- Systemy szablonów wymuszają lepszą organizację kodu źródłowego przez odseparowanie od siebie logiki aplikacji oraz części prezentacyjnej (będące podstawą np. modelu MVC).
- Usprawnienie pracy w większych zespołach projektowych z podziałem ról między poszczególnych członków. Graficy oraz webmasterzy mają dostęp jedynie do szablonów i nie ma obawy, że przypadkowo zniszczą część logiki aplikacji podczas wprowadzania własnych zmian.
- Przez wprowadzenie dodatkowej warstwy abstrakcji i umiejętne z niej korzystanie możliwe jest znaczne poprawienie przenośności kodu.
Zobacz też
- preprocesor
- Smarty (system szablonów dla PHP)
- Open Power Template (system szablonów dla PHP)