И опять здрасти. Издавна я как-то не писал ничего путевого, даже как-то самому неприятно. Так что сходу к теме. Давайте, товарищи грамотеи, забудем такие слова, как XML, XHTML и остальной X…, и побеседуем о вещах, приближенных к действительности.
Сужествует такая «проблема», как разделение дизайна и содержания, и отделение исполняемого кода от получаемого html’я. Мухи — там, котлеты — здесь. Грубо говоря, программер программирует, дизайнер дизайнит и никто никому не мешает жить. А если нужно поменять что-то в оформлении, то сделать это сумеет один оформитель, сиречь дизайнер, без помощи других.
PHP неплох (хорош, собака!) тем, что позволяет встраивать исполняемые конструкции прямо в html. Плюсы понятны. Минусы, к примеру: достаточно трудно поменять оформление в таком коде: echo "".$boldtext.""; Глуповатый дизайнер ужаснется и убежит, а умный программер произнесет «я вам не глуповатый дизайнер, чтоб ерундой заниматься».
Чего охото в идеале? Чтоб была html-страница, где все, как у людей: здоровые, настоящие html-тэги, а в тех местах, где выводится информация, стояли особые, обыкновенные, понятные как для верстальщика, так и для движка/программиста указатели.
Другими словами, что-то вроде такового:
Код:
[TITLE]
[TEXT]
Там, где стоит [TITLE], движок выводит заголовок, там, где [TEXT] — соответственно, текст.
Просто и просто. И все счастливы. И это верно. Но! Здесь и начинается маразм. Поначалу пишется «движок шаблонов», что-то (я утрирую) вроде такового:
Код: $page = str_replace ("[TITLE]", $title, $page);
$page = str_replace ("[TEXT]", $text, $page);
Далее — больше. Оказывается, что в неких случаях этого не много. Необходимо больше функций! К примеру, нам необходимо инспектировать: если [TEXT] пустой, то выводить одно, если не пустой, то выводить другое, другими словами, практически, вводить уже наименьшую логику отображения. И мы пишем супер-пупер наророченый язык шаблонов. На PHP. И называем его SMARTASS (Super Mega And Revolutionary Totally Automatized Shablon System).
До таковой степени накрученный, что дизайнер, ради которого все затевалось, — чтоб тот сумел сам поменять дизайна, уже не может поменять оформление пока специально не выучит язык шаблонов.
А сейчас потрясем мозгами и хорошо подумаем, что все-таки у нас вышло. У нас вышел практически язык программирования, написанный на PHP, который можно встраивать в html-код и тем поменять логику его (html-кода) отображения.
Поздравим друг дружку. У нас вышел PHP, написанный на PHP. Велик для велика. Осмысление этого придет позднее.
А сейчас возвращаемся к первому примеру.
Код:
[TITLE]
[TEXT]
Помните? Сравним его со последующим примером и попробуем отыскать катигоричные различия.
Чем он кардинально отличается? Ни чем. Глуповатый верстальщик усвоит, если ему сказать «нужно воткнуть переменную text — пиши ». Вкупе с тем, это — не что другое, как сокращенная запись оператора echo. И никакого интерпретатора шаблонов не надо.
Другими словами последующий пример php-страницы выведет все, как следует:
Код: <?php
$text = "Это текст";
$title = "Это заголовок";
?>
Далее — больше. Выносим все шаблоны в отдельный файл. И пишем просто:
Код: <?php
$text = "Это текст";
$title = "Это заголовок";
include "template.html";
?>
Мысль понятна? В процессе выполнения php-скрипта нужные части выкладываем в переменные. Позже — инклюдим html-файл, где в подходящих местах проставлено.
Верстальщику же, чтоб научиться работать с такими «шаблонами», необходимо всего 3–5 минут для ознакомления с основами синтаксиса PHP. И не нужно учить некий накрученный язык шаблонов, который ему больше никогда не понадобится.
Ну что отвратительного в таком вот шаблоне страницы?
Код:
Текста нет, пусто.
Введеный текст:
Плюсы — налицо. Для его вывода не надо никаких дополнительных вещей. Не считая PHP.
Вот, фактически, и все.
PS. Почетаемые грамотеи. Данный метод «шаблонизации» вправду покрывает 95% нужд обычных смертных. Если вам что-то не нравится — идите, побрейтесь бритвой Оккама.
|