проблемы шаблонизаторов

Earthling

Guest
Originally posted by PhpGuest
Ну скажи тогда почему включать люгику представления в шаблон - плохо а реализовавать ее в php коде - хорошо
(и тогда уж в каких случаях )
Потому что шаблон должен содержать дизайн, а не программу, "как его показывать". Он должен быть, по возможности, чистым и удобным для редактирования.


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

Верстальщик теряет власть над структурой вывода..
А когда она ему может понадобиться ?
Какие реальные изменения делают такую структуру необходимой ?

Вообще, что он может захотеть сделать со страницей без изменения бизнес-части ?
 

tony2001

TeaM PHPClub
>Потому что шаблон должен содержать дизайн, а не программу, "как его
>показывать". Он должен быть, по возможности, чистым и удобным для
>редактирования.
меня все это время мучал один вопрос:
если у тебя на сайте 2 дизайна (скажем, версия для печати и нормальная) - ты два варианта кода делаешь или ... ?

и небольшая просьба:
перед/после слова "должен" вставляй "имхо", плиз.
такие "установки" у меня зубную боль вызывают..

>Вообще, что он может захотеть сделать со страницей без изменения бизнес-части ?

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

PhpGuest

Guest
ИМХО!!! :)

Автор оригинала: Earthling
Потому что шаблон должен содержать дизайн, а не программу, "как его показывать". Он должен быть, по возможности, чистым и удобным для редактирования.
Это ты становишься на сторону верстальщика-дизайнера имхо низкой квалификации (не понимает алгортмический код)

Таким подходм ты как бы привязываешь себя к странице. И дальнейшая модификация логики представления без тебя, только лишь одним верстальщиком в больших проектах в общем то дорого обойдеться (анализировать твой код целиком)


Да, если я часть возможностей забираю у верстальщика - функциональность безусловно снижается.
Но... Вот насколько она снижается - это интересный вопрос.
Что значит на сколько? Какой критерий оценки?


Верстальщик теряет власть над структурой вывода..
А когда она ему может понадобиться ?
Какие реальные изменения делают такую структуру необходимой ?
Она может понадобиться при редизайне без привлечения програмиста
в частности если у тебя серверная начинка недоступна пользователю например на сайтах бесплатного хостинга где пользователи могут делать фнешнее оформление страниц но не имеют доступа к коду

Где используются шаблоны без логики представление - сайты по большому счету получаются однотипными
 

Crazy

Developer
Earthling, мне, признаться, надоела бессмысленная работа по упорядочению твоего мышления. Разговор по принципу "читайте не то, что я сказал, а то, что я подумал" отнимает больше времени, чем я готов потратить на эту дискуссию. Поэтому я просто вернусь к началу треда и отвечу на исходный вопрос, не связываясь с объяснениями "а почему так получается". Итак, люди делают разнообразные шаблонные движки вместо того, чтобы ходить строем, потому, что:

1. Люди используют различные технологии разработки. При этом происходит различная раскладка по ролям участников команды и, соответственно, по набору требуемых функций.

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

Надеюсь, я ответил на твой вопрос.
 

Earthling

Guest
Где используются шаблоны без логики представление - сайты по большому счету получаются однотипными
У них может быть совершенно разный дизайн. По крайней мере с виду.. Верстальщик может поменять блоки местами и сменить их дизайн.

Это - основной вопрос, который напрямую связан с технологией разработки и выбором шаблонного движка.

Какие изменения можно сделать (и они могут понадобиться) без изменения бизнес-логики в рамках, например, шаблонов Смарти из тех, что недоступны в шаблонизаторе без логики?

Может быть, приведешь из своего опыта возможные примеры ?
 

tony2001

TeaM PHPClub
>Какие изменения можно сделать (и они могут понадобиться) без изменения
>бизнес-логики в рамках, например, шаблонов Смарти из тех, что недоступны в
>шаблонизаторе без логики?

пример с дизайном "для печати" я уже привел.
 

Earthling

Guest
Originally posted by tony2001
>Какие изменения можно сделать (и они могут понадобиться) без изменения
>бизнес-логики в рамках, например, шаблонов Смарти из тех, что недоступны в
>шаблонизаторе без логики?

пример с дизайном "для печати" я уже привел.
В чем здесь проблема при использовании, например, php-templates ?

И, самое главное, как она решается применением Смарти ?

-~{}~ 27.02.04 20:51:

Originally posted by tony2001
меня все это время мучал один вопрос:
если у тебя на сайте 2 дизайна (скажем, версия для печати и нормальная) - ты два варианта кода делаешь или ... ?
Да, нужно такое бывает, это точно.

Два разных шаблона и два куска кода, которые инкапсулируют различия между дизайнами.
Код, который делает общее в дизайне, инклудит тот или иной кусок кода, в зависимости от класса дизайна.

>Вообще, что он может захотеть сделать со страницей без изменения бизнес-части ?

да, вобщем-то, всё.
Все - слишком широко. Web состоит из множества стандартных ситуаций. С одними сталкиваешься очень часто, с другими - реже.. С некоторыми - так редко, что их можно обозвать "нестандартными" и решать отдельно в каждом конкретном случае.

Интересует то, что происходит на самом деле.
То есть, реально востребованное в проектах.

Бывает ли, например, так, что верстальщик вдруг решает новости, которые выводились в одну колонку, вывести в две ?

программист отдает в шаблон данные, шаблон их отображает.
При этом шаблон и программист договорились, что в каком формате отдается.

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

Это накладывает очень серьезные ограничения на самостоятельность шаблона.

Мне кажется(имхо), что в практических задачах эти ограничения немногим уступают тем, которые налагает движок /почти/ без логики.
Вообще, со Смарти я работал давно и мало(еще с версиями 1.x). Поэтому интересно услышать твое мнение, как ведущего достаточно обширные проекты.
 

PhpGuest

Guest
Автор оригинала: Earthling
Предлагаю закончить обсуждение.

Имхо не стоит продавливать "правильность" только одного подхода. Crazy имхо правильно сказал - определенный подход под определенную задачу.


Earthling предлагается более глубоко проанализировать все подходы и написать научный труд на эту тему ;)
 

Earthling

Guest
Originally posted by PhpGuest
Предлагаю закончить обсуждение.

Имхо не стоит продавливать "правильность" только одного подхода. Crazy имхо правильно сказал - определенный подход под определенную задачу.

Earthling предлагается более глубоко проанализировать все подходы и написать научный труд на эту тему ;)
Эх, на самый интересный вопрос-то ты не ответил ;( Про реальную свободу верстальщика.

Я действительно в настоящий момент стараюсь максимально глубоко проанализировать все подходы.
А в загашники у меня уже лежат изученные 15 шаблонизаторов и написан сравнительный бенчмарк по скорости(блоки/переменные) 10 из них.

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

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

Может быть, стоит вывести этот вопрос в новый топик ?

P.S Вообще говоря, я сейчас поставил новые версии Смарти(которые без тормозов) и хочу на некоторое время (навсегда?) к нему вернуться.
Однако опыт форумчан гораздо шире, чем мой возможный.
Да и ответ сейчас, а не потом ;)
 

Crazy

Developer
Автор оригинала: Earthling
Интересует то, что происходит на самом деле.
То есть, реально востребованное в проектах.
Терпеливо повторяю еще раз: проекты -- они разные. Очень разные. Поэтому востребованы в них разные вещи. И попытка собрать их все в одном движке -- смехотворна.
 
Сверху