Forum Webscript.Ru

Программирование => PHP => Тема начата: Petroffs от 20 Января 2005, 11:29:46

Название: Про Smarty
Отправлено: Petroffs от 20 Января 2005, 11:29:46
Смарти предназначен, как я правильно понял, для
отделения логики от представления.

Хочу лишь узнать правильно ли я делаю...

В файле functins.php обрисовываю функции делающие что
либо, в файле index.php их вызываю и скармливаю Смарти,
 а в файле index.tpl представляю полученные данные.

Так? Мне кажется что что-то не так... А именно, мне
приходится сразу же вызывать все функции, независимо от
того, нужны ли они... Или они (как сказано в доке)
кешируются и потом требуется меньше ресурсов?


//functions.php
get_navigation($id) {
  //достаю данные из mysql, получаю массив
  $link=array(1,2,3,...n);
}

//index.php
get_navigation($id);

$smarty->assign("navigation", $link);

//index.tpl
{foreach key=$link from=$navigation}
  {$key}

{/foreach}
 
Укажите пожалуйста, есть ли здесь принципиальная ошибка (я о самой работе со Смарти)?


И если я забью в шаблоне вывод формы, типа {$form}. Но эта форма будет появляться в опред. случае... Тогда в шаблоне лишний раз будет обрабатываться пустая переменная?
Название: Про Smarty
Отправлено: Меняздесьдавнонет от 20 Января 2005, 11:35:44
функция выполняется только в момент обращения к ней.
Цитировать
Petroffs:
Тогда в шаблоне лишний раз будет обрабатываться пустая переменная?

И что? Почему тебя это беспоекоит?
Название: Про Smarty
Отправлено: Petroffs от 20 Января 2005, 12:03:42
RomikChef
Цитировать
RomikChef:
функция выполняется только в момент обращения к ней.

да это верно...
Цитировать
RomikChef:
И что? Почему тебя это беспоекоит?

Просто спросил, должно ли так быть...
У меня автоматом, например, генерируется таблица с переменныыми, а их пока нет (пустые) - таблица же сгенерируется... а это уже кривоватый шаблон...
Название: Про Smarty
Отправлено: Меняздесьдавнонет от 20 Января 2005, 12:57:48
Цитировать
Petroffs:
Смарти предназначен, как я правильно понял, для
отделения логики от представления.

С двумя поправками.
1. полностью отделить логику от представления невозможно. Тем более, когда человек слабо представляет себе смысл эжтих терминов. Впрочем, когда представляет - тоже.
2. Смарти предназначен для того, чтобы насильно разделять логику и представление, для тех, у кого не хватает сил сделать это самостоятельно.
Однако, исходя из п.1, ради этого разделения приходится все усложнять и усложнять код. В результате мы имеем еще один язык, в котором логики - полные штаны.
Название: Про Smarty
Отправлено: Алексей от 20 Января 2005, 14:02:41
RomikChef
ты действительно такой ярый противник шаблонизаторов? :)
Название: Про Smarty
Отправлено: Petroffs от 20 Января 2005, 14:21:17
так ответа на вопрос - так ли все делаеца (концептуально):
Цитировать
Petroffs:

//functions.php
get_navigation($id) {
  //достаю данные из mysql, получаю массив
  $link=array(1,2,3,...n);
}

//index.php
get_navigation($id);

$smarty->assign("navigation", $link);

//index.tpl
{foreach key=$link from=$navigation}
  {$key}
 
{/foreach}


не нашел!
Название: Про Smarty
Отправлено: Меняздесьдавнонет от 20 Января 2005, 15:02:04
Алексей я не противник.
просто для большинства из нихя не вижу смысла в большинстве случаев.

Petroffs
Ну, может быть, кто-нибудь ответит еще :-)
Название: Про Smarty
Отправлено: Petroffs от 20 Января 2005, 16:17:31
Цитировать
RomikChef:
из нихя не вижу

Учитывая особенности русского языка, я чуть было не так понял :)

А Смарти - я его проверяю, пытаюсь понять, чем же он так хорош, раз его так малюют... Вот и смотрю как его "кушать" надо...