Понедельник, 15.06.2026, 18:49
Приветствую Вас Гость | RSS
Поиск по каталогу
Главная страница | Каталог статей | Регистрация | Вход

Информационные технологии
Форма входа
Меню сайта

Категории каталога
php [246]
perl [1]
perl
ASP [1]
AJAX [0]

Друзья сайта

Наш опрос
Оцените мой сайт
Всего ответов: 69

Начало » Статьи » Web программирование » php

Шаблоны в PHP для чайников
И снова здравствуйте. Давно я как-то не писал ничего путного, даже как-то самому неприятно. Так что сразу к теме. Давайте, товарищи умники, забудем такие слова, как XML, XHTML и прочий X…, и поговорим о вещах, приближенных к реальности.



Сужествует такая «проблема», как разделение оформления и содержания, и отделение исполняемого кода от получаемого html’я. Мухи — там, котлеты — тут. Грубо говоря, программист программирует, дизайнер дизайнит и никто никому не мешает жить. А если надо поменять что-то в оформлении, то сделать это сможет один оформитель, сиречь дизайнер, самостоятельно.



PHP хорош (хорош, собака!) тем, что позволяет встраивать исполняемые конструкции прямо в html. Плюсы понятны. Минусы, например: довольно сложно менять оформление в таком коде: echo "<b>".$boldtext."</b>"; Глупый дизайнер испугается и убежит, а умный программист скажет «я вам не глупый дизайнер, чтобы ерундой заниматься».



Чего хочется в идеале? Чтобы была html-страница, где все, как у людей: здоровые, полноценные html-тэги, а в тех местах, где выводится информация, стояли специальные, простые, понятные как для верстальщика, так и для движка/программиста указатели.



То есть, что-то вроде такого:



<html>

<title>[TITLE]</title>

<body>

[TEXT]

</body>

<html>


Там, где стоит [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. Велосипед для велосипеда. Осмысление этого придет позже.



А теперь возвращаемся к первому примеру.



<html>

<title>[TITLE]</title>

<body>

[TEXT]

</body>

<html>


Помните? Сравним его со следующим примером и попробуем найти кардинальные различия.



<html>

<title><?=$title?></title>

<body>

<?=$text?>

</body>

<html>


Чем он кардинально отличается? Ни чем. Глупый верстальщик поймет, если ему сказать «нужно вставить переменную text — пиши <?=$text?>». Вместе с тем, это — не что иное, как сокращенная запись оператора echo. И никакого интерпретатора шаблонов не нужно.



То есть следующий пример php-страницы выведет все, как надо:



<?php

$text = "Это текст";

$title = "Это заголовок";

?>



<html>

<title><?=$title?></title>

<body>

<?=$text?>

</body>

<html>


Дальше — больше. Выносим все шаблоны в отдельный файл. И пишем просто:



<?php

$text = "Это текст";

$title = "Это заголовок";

include "template.html";

?>


Идея понятна? В процессе исполнения php-скрипта нужные части выкладываем в переменные. Потом — инклюдим html-файл, где в нужных местах проставлено .



Верстальщику же, чтобы научиться работать с такими «шаблонами», нужно всего 3–5 минут для ознакомления с основами синтаксиса PHP. И не надо учить какой-то навороченный язык шаблонов, который ему больше никогда не пригодится.



Ну что плохого в таком вот шаблоне страницы?



<html><title><?=strtoupper($title)?></title>

<body>



<? if ($text==""): ?>

Текста нет, пусто.



<? else: ?>

Введеный текст: <b><?=$text;?></b>



<? endif; ?>



</body>

</html>


Плюсы — налицо. Для его вывода не нужно никаких дополнительных вещей. Кроме PHP.



Вот, собственно, и все.



PS. Уважаемые умники. Данный способ «шаблонизации» действительно покрывает 95% нужд простых смертных. Если вам что-то не нравится — идите, побрейтесь бритвой Оккама.
Категория: php | Добавил: freeone (09.05.2007) | Автор: Дмитрий Смирнов
Просмотров: 634 | Рейтинг: 0.0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:

Copyright Информационные технологии © 2006