Хорош ли подход? Отделить php от html

Денч

Новичок
Хорош ли подход? Отделить php от html

Вот посмотрел парочку шаблонизаторов - XTemplate, Smarty... Немного испугался...
И решил попробовать так:
Создаю шаблоны:
PHP:
---index.tpl
<html>
<title>{TITLE}</title>
<body>
<table>
{CONTENT}
</table>
</body>
</html>

---news.tpl
<tr><td>{TITLE_NEW}</td></tr>
<tr><td>{TEXT_NEW}</td></tr>

---galler.tpl
<tr><td><img src="{IMG}" width="{W}" height="{H}"></td></tr>
<tr><td>{NOTE}</td></tr>
А затем в php-скрипте делаю примерно следующее:
PHP:
...
if($_GET['gal'])
{
  $galler=file_get_contents("galler.tpl");
  while($data=mysql_...)
  {
     $_out=$galler;
     $_out=str_replace("{IMG}",$data['img'],$_out);
     $_out=str_replace("{NOTE}",$data['note'],$_out);
     ...
     $out.=$_out;
  }
}

if($_GET['new'])
{
  $news=file_get_contents("news.tpl");
  while($data=mysql_...)
  {
    $_out=$news;
    $_out=str_replace("{TITLE_NEW}",$data['title_new'],$_out);
    $_out=str_replace("{TEXT_NEW}",$data['text_new'],$_out);
    $out.=$_out;
  }
}

$index=file_get_contents("index.tpl");
$index=str_replace("{CONTENT}",$out,$index);
$index=preg_replace("#{([A-Z_]*)}#","",$index);
echo $index;
Вопрос - насколько хорош такой подход к разделению php от html? Понимаю, что здесь можно было бы использовать include, но тогда пришлось бы в html вставлять что-то вроде <?=$content?>, проверять, есть ли такая переменная, и т.д. Или же лучше пользоваться готовыми шаблонизаторами, или сваять свое универсальное решение?

-~{}~ 30.07.05 03:51:

Только сейчас посмотрель последние темы, в частности эту -
http://phpclub.ru/talk/showthread.php?s=&threadid=70655&rand=5

Там Фанат написал:
На форуме
Нет раздела "музей"
Жалко.
Мои дела тоже можно отнести к музейным экспонатам, или же вообще куда-нибудь еще дальше?
 

Krisha

pain in the neck
Re: Хорош ли подход? Отделить php от html

Автор оригинала: Денч
Вот посмотрел парочку шаблонизаторов - XTemplate, Smarty... Немного испугался...
И что тебя там так напугало ?

сваять свое универсальное решение?
Ненужная трата времени, если только цель не обучение.

лучше пользоваться готовыми шаблонизаторами
 

tristram

Guest
я написал для сайта такой, в виде класса. простейшая логика и т.д. очень удобно надо сказать, и много экспириенса получил
 

Фанат

oncle terrible
Команда форума
Нет, твои дела нельзя отнести к музейным экспонатам.
У тебя простая и логичная структура.
правда, она во многом напоминает xtpl, и не понятно, прочему ты его испугался.
может, тебе стоит поичтать вот это?
http://eugene.net.ru/other/php/portal/intro.php

Вопрос - насколько хорош такой подход к разделению php от html?
на самом деле, разделять php с html не так уж и нужно.
Разделять надо логику приложения и логику отображения.
грубо кооря - получение данных и отображение данных.
ВСЯКИЙ, кто пытается ПОЛНОСТЬЮ изжить логику из отображения (из "html" в твоей терминологии), в конечном итоге налетает на грабли, понимая, что это невозможно.
Логика в отображении всегда присутствует.
поэтому бояться пхп в хтмл не надо.
Надо разделять скрипт на две части - получение данных и отображение.
поэтому подумай над вот таким вариантом, самым простым:
http://spectator.ru/technology/php/easy_templates
 

Денч

Новичок
не понятно, прочему ты его испугался
Не, xtpl я приплел случайно. Он мне наоборот, понравился. От него и плясал, когда думал, как отделить php от html.

Меня больше поразил Smarty - не совсем понимал, какая разница, буду ли я писать логику на php или на языке Smarty. Еще и его учить...

В общем, понятно, что осознание всего этого придет со временем.
Всем спасибо.
 
Сверху