Ўаблоны в PHP дл€ чайников.

”добный новостной сайт atinform.com. »сключительно актуальные новости страны и мира.

Ўаблоны в PHP дл€ чайников

  // 7 сент€бр€ 2003 года

» снова здравствуйте. ƒавно € как-то не писал ничего путного, даже как-то самому непри€тно. “ак что сразу к теме. ƒавайте, товарищи умники, забудем такие слова, как 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% нужд простых смертных. ≈сли вам что-то не нравитс€ Ч идите, побрейтесь бритвой ќккама.

 







ѕри перепечатке информации делайте, пожалуйста, ссылку на наш сайт (либо поделитьс€ вконтакте, гугл+ или делитесь в одноклассниках статьЄй). —пасибо!

»сточник: www.wr-script.ru©, 2004-2023г.

ƒелитесь с друзь€ми в соцсет€х. јктивные комментаторы получают свежие скрипты и бесплатные доработки от WR-Script.ru!

¬ернутьс€ к стать€м помощи WEB-мастеру

WR-–°—З—С—В—З–Є–Ї