PHP и шаблоны

MuXa247

Новичок
Originally posted by Фанат
А какой смысл в пхп-скрипте, если он не работает с бд?
что это вообще означает - "пхп скрипт, который содержит коненый результат"? конечный результат скрипта - это хтмл.
Хорошо... объясню доходчивей...
Пример:
Есть новости на главной, они берутся из БД. Меняются они раз в день. Посещаемость 10000 хостов. Так вот без использования кеширования будет как минимум(!) 10000 запросов к базе данных, возвращающих одну и ту же инфу. Если же кеширование используется, то количество запросов сокращается до 20-30(зависит от настроек).
При добавлении новости, кеш этой страницы очищаем и позже(при первом создании обновленной страницы) он создается заново, т.е. задержки при выводе новостей не будет!
 

Макс

Старожил PHPClub
Все это можно организовать и без Smarty.
Есть куча готовых классо для кеширования (pear::cache_lite, pear::cache_lite_output);
 

MuXa247

Новичок
Originally posted by Макс
Все это можно организовать и без Smarty.
Есть куча готовых классо для кеширования (pear::cache_lite, pear::cache_lite_output);
Дык скрипты можно организовать и без PHP.
Есть куча языков для этого (Perl, C++)...
 

Фанат

oncle terrible
Команда форума
MuXa247
мальчик мой милый.
ты мне сейчас объяснил, что такое кэширование КОНЕЧНОГО ХТМЛ.

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

SiMM

Новичок
MuXa247, по моему вы вообще вопроса не поняли, а просто влезли в топик. Повторю свой вопрос - какая связь между кэшированием и отделением логики приложения от оформления контента (работы дизайнера). Или вы хотите сказать, что о кэшировании голова должна болеть у дизайнера?
 

StUV

Rotaredom
Если исходить из первоначального вопроса, то ответ "ничем".

Просто если нет времени заниматься реализацией функциональности напр. того же смарти (или нет собственных наработок) - то имеет смысл этим всем воспользоваться - ничего "плохого" ИМХО в этом нет.

Если же что-то в существующих шаблонных движках не устраивает и есть время для написания своего (как с нуля, так и используя в качестве модулей другие наработки - напр. из pear)... - только в путь :)
 

Altex

Новичок
Спасибо Ромик, ты как всегда неотразимо ставишь ламеров на место :))

Остальным тоже спасибо за добрые и доходчивые слова. :)

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

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

Ром, если можешь то спокойнее подведи итоги топика.



P.S.

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

ФА>> Если честно - задолбали ваши передергивания.

Хм :) неужели и вправду так сильно задолбали, что ты позволяешь себе делать тоже самое? Ты ведь выдрал фразу без контекста, а смысл был другой, и предложение было вот таким: "по существу использовать просто <?=$var?> не всегда красиво, без проверок на существование этой переменной."
 

Фанат

oncle terrible
Команда форума
неужели и вправду так сильно задолбали
совершенно верно.
Это действительно так.
Количество мифов овкруг шаблонов просто фантастическое.
Отсутствие у людей абстрактного мышления - повальное.
Это действительно начинает доставать.

вот твой пример, к примеру.
ты что - в своих скриптах всегда пишешь
if (isset($var)) echo $var;
вместо
echo $var;
?
у тебя с головой всё в порядке?
а функции ты вызываешь не иначе, как
if (fumction_exists)?
это, в общем, твоё право, но претендовать на стандарт, извини, никак не может.
мы тут программисты в общей массе своей, а не параноики.

если ты при использовании шаблонного движка заботишься о существовании ВСЕХ используемых переменных, то НИЧТО не мешает тебе позаботиться точно так же и при использовании шаблона на пхп

-~{}~ 01.12.04 14:41:

мне плевать на опросы и их результаты.
Я тут уже проводил опрос - можно ли передать данные одновременно методом гет и методом пост.
результат стыдно людям показать.

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

SiMM

Новичок
Автор оригинала: StUV
Если же что-то в существующих шаблонных движках не устраивает и есть время для написания своего (как с нуля, так и используя в качестве модулей другие наработки - напр. из pear)... - только в путь :)
Я думаю дело даже не в том, устраивает/неустраивает - скорее, вопрос в том, почему так получилось? Сейчас лично я вижу это так - кто-то сказал, что это хорошо (для perl'а я бы это ещё понял), и все незадумываясь начали это использовать. Когда произошёл переход не PHP - о том, что PHP сам шаблонизатор - никто и не подумал, и все по инерции продолжили делать всякие шаблонизаторы и использовать их.
Чем то мне это напомнило mod_rewrite vs FilesMatch.
 

StUV

Rotaredom
SiMM
+ в смарти помимо простого встраивания в шаблоны значений есть еще куча всяких фич - соответственно если есть необходимость в них всех (а это далеко не всегда так) - имеет смысл воспользоваться готовым движком, если нет - то можно скомбинировать необходимое из своих/чужих наработок.

зы: то же самое можно сказать про любой движок (не обязательно про шаблонный)... :)
 

Altex

Новичок
Фанат
Да нет же, опять ты выдрал фразу :))
-------
ФА>>ты что - в своих скриптах всегда пишешь
ФА>>if (isset($var)) echo $var;
ФА>>вместо
ФА>>echo $var;

AL>>Можно конечно и в функцию оформить <?=init($var);?> где
AL>>fucntion init (&$var, $default = false) {if (!isset($var)) $var =
AL>>$default; return $var;}

Или ты обычно инициализируешь и проверяешь переменные перед вызовом самомго шаблона? Или просто notice отключаешь, как уже упоменалось здеь? Не критикуй вопрос, пожалуйста, просто интересно :)
 

Фанат

oncle terrible
Команда форума
Сформулируй вопрос понятнее.
Пока я его не понимаю.
Чем, по-твоему, должен заниматься скрипт, который работает с шаблоном, кроме как подготовкой данных для этого шаблона?!
 

gromitus

Новичок
смотрите - во первых вам не вставят в шаблон что нибудь типа system() - а во вторых - если например пхп надоест - можно быстро написать парсер на асп'е например. Парсер пхп вы ведь писать не станете.
 

vladax

Новичок
если например пхп надоест - можно быстро написать парсер на асп'е например
насчет быстро ты явно погоричился :)
тебе скорее надоест перелопачивать шаблоны проекта под асп.. тем более если проект большой и серьезный :)
хотя теоретически это возможно и плюс :)
 

Фанат

oncle terrible
Команда форума
gromitus
никто не спорит.
Если существует вероятность, что придется логику переписывать на АСП или существует вероятность, что "вставят систем" - нет проблем. Обязательно надо отринуть шаблоны на пхп.

Ты совершенно правильно рассуждаешь. Ради этих двух гипотетических возможностей гадо забить на удобство и всю жизнь париться с кривыми самопальными шаблонами.

ксати, по поводу систем.
чем принципиально отличается шаблон от скрипта?
если всунут в шаблон, по отчего бы не всунуть и в скрипт?

Кстати, по поводу аспа.
Если есть подозрения на кроссплатформенность - ты уверен, что имеет смысл налаживаться на самопальный шаблонизатор, а не на хслт?

высоси из пальца ещё что-нибудь? а то мне скучно
 

Donald

Новичок
и мои 3 копейки

Что такое шаблоны по сути? Подумали? Правильно. Это некий специальный язык, встраиваемый в HTML. А парстися этот язык в нашем случае PHP, тоже языком, встраиваемым в HTML. Что мы в итоге получили? Правильно. Бред!

Шаблоны хороши для отделения логики программы от представления для НЕВСТРАИВАЕМЫХ языков. Просто PHP сейчас так сильно развивается именно как мощный язык программирования, что все забывают про его встраиваемость.

Теоретически шаблоны в PHP должны писаться на самом PHP. Вот абсолютно точно, что <?=$var?> ничуть не сложнее какого-нибудь %VAR% или
<? foreach ($array as $elem) { ?>
какой-то текст <?=$elem?> и т.д.
<? } ?>
не сложнее смартевого
{foreach from=$array}
делаем что-то
{/foreach}


Просто используют шаблонные движки потому, что там много функционала уже есть. Если есть уже готовые свои библиотеки с тем же функционалом, то шаблонные движки нафиг не нужны. Если нет - почему бы не использовать готовое.
 
Сверху