Гуру, Ваше мнение... Разделение логики и дизайна

  • Автор темы Автор темы OkyHb
  • Дата начала Дата начала

OkyHb

Guest
Гуру, Ваше мнение... Разделение логики и дизайна

Уважаемые гуру, вот наклепал что-то с просонья:

PHP:
class page
{
  var $file="";
  var $result;
  
  function page()
  {
    $this->file = "/tmpl/page.html";
  }
 
  function show_by_date($date)
  {
    $this->result=@mysql_query("select * from table");
  }

  function show_grid()
  {
    $template = tmpl_open($this->file);
    while($row=mysql_fetch_array($this->result))
    {
      tmpl_set($template, "ID", "$row['id'];
      // и так далее
    }
    print tmpl_parse($template);
  }

}

собственно сам темплейт...

ну а потом, понятно, инклудю в нужную часть страницы, и вызываю соответствующие методы.

Как на Ваш взгляд такое решение... или мне лечиться пойти...
 
А кто-то - не посоветует.
Чужой будет понятен только если свой попробовал сделать.

Окунь, в общем, как-то я особого смысла в указанных функциях не вижу, если честно.

вот в этом, например
var $file="";
function page()
{
$this->file = "/tmpl/page.html";
}

или в этом
function show_by_date($date)
{
$this->result=@mysql_query("select * from table");
}
- какое-то разительное несоответствие названия функции содержанию. Не вижу я в ней ни show ни by date
 
Вобщем обьяснил я плохо по-моему.

Решил сделать что-то nипа элемента управления (жалкое подобие ascx) :)

Приведенный выше класс - это собственно логика шаблона, для показа новостей например. Отсюда и один из методов - show_by_date() - селект записи за указанную дату. Можно еще много чего добавить, например по show_by_id или show_by_keyword, etc.

Использую готовый энджин - php-templates.

Ну а на странице, где нужно показать эти новости:
PHP:
$news = new Page();
$news->show_by_date(date("Y-m-d"));
$news->show_grid()

Ну а название функции конечно правильнее было бы сделать select_by_date :)
 
все равно, извини, но как раз логики я не вижу.

сильно подозреваю, что
tmpl_open - это синоним file, а tmpl_set - str_replace
с этим
var $file="";
function page()
{
$this->file = "/tmpl/page.html";
}
ты тоже ничего не объяснил.

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