PHP и шаблоны

asm

Пофигист
PHP и шаблоны

Звиняйте что может не по теме но очень хочется разобраться:

Зачем изобретать велосипед? PHP и шаблоны... Чем тот же Smarty
<td>{$article[art].headline}<td>
лучше чем конструкция php
<?=$article[art].headline?>
Отчеление логики от представления? Что мешает создать шаблон и потом его инклудить?

Не горячитесь только а обьясните. Или дайте почитать где описано...
 

asm

Пофигист
Просто читаю все используют Smarty или еще что...
Вот и решил задуматься... :)

-~{}~ 29.11.04 19:39:

То есть можно считать что они нифига не лучше? И дальше забивать на них? Ибо никто определенно сказать не может...
 

SiMM

Новичок
Имхо, это сугубо индивидуально. Когда ты почувствуешь в них необходимость - ты сам это поймёшь - вполне возможно, что этого никогда не случится.
 

asm

Пофигист
Пока я вижу только отрицательное.

Я использовал QuickTemplate (возвожно не самый лучший из всего разнообразия).

Но впоследствии отказался ввиду ряда причин.
 

jonjonson

Guest
asm, когда накапливается некоторое критическое количество кода PHP + HTML + JavaScript + CSS + ДоБаВиТь_ЧтО-То_пОвКуСу, то начинаешь разделять. Создавая шаблоны, ты знаешь, что место отвечающее за вывод данных вот оно. Создавая файлы библиотек и классов, ты собираешь мусорку функционала. А потом еще это все собираешь в третих файлах, словно в котле с магическим варевом. :)

С другой стороны, ты можешь начинать варить магическое варево сразу. Правда компаненты потом трудно будет извлечь для другой похлебки и трудно изменить состав ;)
 

SiMM

Новичок
Автор оригинала: jonjonson
Создавая шаблоны, ты знаешь, что место отвечающее за вывод данных вот оно.
Однако, неиспользование шаблонных движков не исключает возможности такого подхода ;)
PHP:
My variable is <?=$var?>
 

Фанат

oncle terrible
Команда форума
jonjonson
казус.
ты, добавляя шаблонный движок, не разделяешь, а ДБАВЛЯЕШЬ. к яваскрипту и ЦСС ещё один язык.

А самое главное ты так и не объяснил: почему собирать все вместе надо обяазательно шаблонным движком? Будь внимательнее
 

asm

Пофигист
jonjonson
Ты уверен что чем больше ингридиентов тем вкуснее похлебка? Притом что хороший повар определяется не знанием ингридиентов а умением приготовления ВКУСНОЙ и ЗДОРОВОЙ еды.
 

jonjonson

Guest
SiMM, совершенно не исключает :cool:

Фанат, я не говорил, что все собирать нужно шаблонным движком. Этого в принципе делать не нужно. Все собирается в скриптах, которым веб сервер передает клиентский запрос (а это не шаблоны). Сами шаблоны лишь способ разделить отображение и получение данных для отображения.

Согласен, что не всегда имеет смысл шаблонизация. Например, в случае новостей не всегда нужно в начале получить в цикле список новостей, а потом отобразить его в другом цикле. Проще это выполнить в одном цикле. Но это пример простй. Но вот, например, если пытаешься прикрутить свою готовую новостную систему к десятку сайтов, то править php скрипт под дизайн каждого сайта становится накладно. Особенно, если он смешан еще с парой тройкой сервисов в одном файле.

asm, любую идею можно довести до абсурда.

А можно определиться с приемлемыми критериями и просто использовать как нечто полезное.

Насчет похлебки. Если ты варишь ее много раз и не ради самого процесса приготовления, а ради куска хлеба насущного (и еще расчитывая на масло и икру), то начинаешь совершенствовать процесс варки. Каша из кода в минимальном количестве файлов конечно привязывает клиента к разработчику в случае поддержки. Но ИМХО лучше иметь десять клиентов, чем одного.

All, шаблонизаторы можно любить||не любить, но они есть и будут.
 

Altex

Новичок
Re: PHP и шаблоны

Автор оригинала: asm
Звиняйте что может не по теме но очень хочется разобраться:

Что мешает создать шаблон и потом его инклудить?
1) А если нужно (и в большинстве случаев именно так) не просто инклудить, а запихнуть в переменную? Вот как вариант - доработать шаблоны вида "my var <?=$var;?>" до "return 'my var '.$var" и тогда можно конечно $text = include "temllate.tpl" но ведь проще же когда в качестве шаблона просто "my var {$var}"

2) по существу использовать просто <?=$var?> не всегда красиво, без проверок на существование этой переменной. <? if (isset($var)) echo $var; ?> уже не выглядит так же лаконично и привлекательно, не правда ли? Можно конечно и в функцию оформить <?=init($var);?> где fucntion init (&$var, $default = false) {if (!isset($var)) $var = $default; return $var;}

3) Суть шаблонов отделение бизнес-логики от представления. Это упрощает и предостерегает. Ты всегда знаешь что дизайн у тебя в шаблонах и при необходимости редизайна тебе не нужно править сами скрипты. И так же в шаблонах не используешь php в чистом виде, что предостерегает от ошибок в логике. Поэтому так безопаснее и понятнее.
 

Фанат

oncle terrible
Команда форума
jonjonson
ты просто не понял, о чем речь.
Шаблон с использованием пхп - это точно такой же шаблонизатор, о которых ты говоришь.
ты, пожалуйста, не узурпируй понятие ШАБЛОНИЗАТОР со своим шаблонным движком.
Андестенд?

И впредь будь внимательнее.

-~{}~ 01.12.04 12:07:

Altex
по существу использовать просто <?=$var?> не всегда красиво,
не надо бредить.
по существу, ТОГДА УЖ, и {VAR} - "не всегда красиво".

Если честно - задолбали ваши передергивания.
Если шаблон на пхп - то это "перемешка пхп кода и хтмл", а шаблон на движке - это "Шаблон". Вот хрена лысого!
Шаблон на пхп - это шаблон. А ваши боморощенные движки - это перемешка недоязыка с хтмлем.

То же самое и с переменными. Выбери что-нибудь одно.

Суть шаблонов отделение бизнес-логики от представления. Это упрощает и предостерегает. Ты всегда знаешь что дизайн у тебя в шаблонах и при необходимости редизайна тебе не нужно править сами скрипты. И так же в шаблонах не используешь php в чистом виде, что предостерегает от ошибок в логике. Поэтому так безопаснее и понятнее.
Набор слов.
принципиально шаблон на пхп НИЧЕМ не отличается от шаблона с испрользованием самопального движка.
Хочешь отделить - отделяй.
И уж про понятность всех этих мегаконструкций петь военных песен не следует. ага?
 

SiMM

Новичок
Re: Re: PHP и шаблоны

Автор оригинала: Altex
1) А если нужно (и в большинстве случаев именно так) не просто инклудить, а запихнуть в переменную? Вот как вариант - доработать шаблоны вида "my var <?=$var;?>" до "return 'my var '.$var" и тогда можно конечно $text = include "temllate.tpl" но ведь проще же когда в качестве шаблона просто "my var {$var}"
Чем проще? Если такая необходимость возникнет - ради бога, можно и об output buffering'е вспомнить, но даже если нет - ничто не мешает делать замену выражений вида <?=$var?> вместо выражений вида {$var} - с точки зрения программирования - никакой разницы, с точки зрения дизайнера - то же.
2) по существу использовать просто <?=$var?> не всегда красиво, без проверок на существование этой переменной.
По-моему, это не тот случай, и тут вполне допустимо "гашение" ошибок при подгрузке шаблона.
PHP:
error_reporting(E_ALL ^ E_NOTICE);
include 'template.php';
3) Суть шаблонов отделение бизнес-логики от представления.
...
Поэтому так безопаснее и понятнее.
Звучит неубедительно - пока не вижу разницы.
PS: Фанат опередил :)
 

asm

Пофигист
SiMM
Согласен все описал как и делаю и про output buffering и про ошибки
jonjonson
Altex
Если я делаю инклуд чем это не шаблон? потому что его никто так не называет?
Отделение логики от представление налицо. Если вы все еще к этому прете то перечитайте топик.
 

MuXa247

Новичок
Re: PHP и шаблоны

Originally posted by asm
Зачем изобретать велосипед? PHP и шаблоны... Чем тот же Smarty
<td>{$article[art].headline}<td>
лучше чем конструкция php
<?=$article[art].headline?>
Шаблонизаторы типа Smarty (где надо) кешируют страницы!
При использовании же PHP-ных шаблонов, код будет выполняться в порядки больше раз, нагружая сервак!
По моему, это большой плюс в пользу шаблонизаторов! :rolleyes:
 

Фанат

oncle terrible
Команда форума
шо - таки правда кэширует конечный хтмл, а не те же самые пхп скрипты, которые генерит?
 

MuXa247

Новичок
Originally posted by Фанат
шо - таки правда кэширует конечный хтмл, а не те же самые пхп скрипты, которые генерит?
"Страницы" - подразумевалось "те же самые пхп скрипты"!
Но "те же самые пхп скрипты" не работают с БД и файлами, а содержат уже конечный результат, т.е. ПОЧТИ "конечный хтмл"!
Уже сам программер определяет где данные НЕ должны кешироваться!
 

Фанат

oncle terrible
Команда форума
А какой смысл в пхп-скрипте, если он не работает с бд?
что это вообще означает - "пхп скрипт, который содержит коненый результат"? конечный результат скрипта - это хтмл.
 

Макс

Старожил PHPClub
Шаблонизаторы типа Smarty (где надо) кешируют страницы!
При использовании же PHP-ных шаблонов, код будет выполняться в порядки больше раз, нагружая сервак!
По моему, это большой плюс в пользу шаблонизаторов!
"До чего техника дошла" (с)
Теперь шаблонизаторы используют для уменшения нагрузки на сервер :)
 

SiMM

Новичок
Автор оригинала: MuXa247
"Страницы" - подразумевалось "те же самые пхп скрипты"!
Ну и зачем же генерировать PHP-скрипты при помощи шаблонов, когда можно делать сразу скрипты на PHP и не думать о каком-то там кэшировании PHP-скриптов? Зачем порождать сущности?
 
Сверху