Очередное столкновение логики представления с логикой приложения.

neko

tеam neko
да это не тебе лично ответ
а так, комментарий ко всему топику.

> Покажите мне, где я это писал ))))

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

> Таки не соглашусь с попроавуой "моему". Найдите дизайнера(верстальщика),
> который поймет логческие шаблоны, но не поймет блочные. Не получится.

ты только что вернулся к отправной точке.
сейчас можно начать все с начала.
с обмусоливания в ключе "более понятен"/"менее понятен"
с этого топик начался.

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

-~{}~ 25.05.05 23:47:

вообще тут слишком много допущений
сами словосочетания "логика представления" и "логика приложения" предпологают косвенно, что никакой другой логики нет.
очевидно, что это неверное предположение.

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

ONK

Пассивист PHPСluba
Дмитрий Попов, neko путает тебя с Фанат - ом, это он ещё давно выдвинул этот тезис, и по прежнему его придерживается, возможно по личным мотивам. При этом как мне казалось, раньше он имел в виду "физическое" разделение логики и html кода, что выглядело странно. А теперь, видимо, имеет в виду, что логика отображения и структура HTML шаблона в любом случае двунаправлено связаны между собой.
При этом никто не мешает отделять эту логику от самого шаблона.

Дмитрий Попов, поддерживаю все твои доводы. -)
 

Domovoj

Guest
Автор оригинала: Дмитрий Попов Вот все говорят о разделении каких-то мифических логик представления, бизнес-логик и других видов логик.
При том никто не смог четко провести грань между ними.
IMHO, "логика представления" - это вся та логика, которая непосрественно влияет на внешний вид html страниц, т.е.: раскраска в определённом порядке, деление на столбцы, отображение или скрытие секций...

"логика приложения" - подразумевалось всё то, что напрямую не связано с отображением на страницах: алгоритмы выборки и обработки данных, связь с внешними API и сервисами, и т.д.


Я же смотрю на вопрос проще:
Шаблоны мне нужны, банально, что бы отделить HTML от PHP. И всё.
Не логику от логики, а логику как таковую от представления.

Это понятно мне. Это более чем понятно дизайнеру.
Если мне надо исправить внешний вид элемента - я лезу в HTML и легко его правлю.

Если надо исправить поведение элемента (как раз к слову о количестве ячеек, или цветной раскраски) - я правлю PHP.
Согласен, поэтому я и решил, что деление на 3 уровня (или сколько ещё угодно: логика ядра, логика persistent data objects, ...) - это просто один из способов организации PHP, кому то он может удобен, кому то - нет.
 

snaky

Новичок
Дмитрий Попов:
Цвет - не является.

Сколько видов цвета, и как они чередуются - является.

В чередовании цветов есть логика. Всегда. Это доказывается элементарно: Для того, что бы реализовать вывод строк разного цвета, необходимо использовать хотя бы одну логическую функцию. Или по другому: Вывод цветов подчиняется строго заданному алгоритму.
Так, хорошо... Когда требуется раскрасить какие-то данные при выводе, относящиеся к определенным группам (каждая группа своим цветом), я еще (с натягом) соглашусь. Группы определяются бизнес-логикой самого приложения, и дизайнер/версальщик тут как буд-то бы не причем. Но...
Вот нарисовал верстальщик таблицу из динамических данных. Все просто и все довольны. Немного погодя, посмотрел он на нее и понял, что лучше страница будет выглядеть, когда эта самая таблица будет полосатой (строка светлая, строка темная). Что же теперь, он должен беспокоить программиста, который должен предоставить ему механизм смены цветов?! А программист тут причем? Да мало ли что еще придет в голову оформителям? Каждый раз привлекать программиста? Зачем?! Ведь речь идет строго об оформлении. И не надо говорить, что мол, напридумывали тут всяких логик, и что границы между ними очень расплывчатые. Да, есть такие случаи. Но в большинстве своем можно строго отделить логику отображения (представления) информации от бизнес-логики приложения.
Вот есть массив с данными. Как он заполняется, окуда берутся данные: из БД, из файла, с другого сайта, вычисляются по страшенным формулам, да черт его знает, откуда еще - это дело программиста. У полученного массива нет представления, пока его кто-то не нарисует. Скажите, как выглядит массив сам по себе? Так:
array(1, 2, 3)
так:
array(
1,
2,
3
)
или может быть вспомним ячейки памяти в которых он хранится? А как выглядят данные? На мой взгляд в шаблон должны передоваться голые данные без намека на оформление. А как их показывать, в строчку, в столбик, в полосочку или в горошек - строго дело дизайнера/версальщика.
Например, есть массив ссылок для динамического меню, который выдал программист. Ему не интересно, как будет выглядеть это меню. Может быть оно будет просто ссылками, может быть это будут кнопки и т.д. Хотя вот здесь грань между логиками может стать спорной. Если дизайнер захочет вывести картинки рядом с каждым пунктом меню? Тогда без программиста обойтись трудно (меню динамическое). Все противники активных шаблонов здесь могут сказать: "Вот, мы же гворим, что грани никакой нет, что надо отделять HTML от PHP, а не какие-то там абстрактные логики".
Я придерживаюсь такого мнения: если есть возможность построить сайт так, чтобы вмешательство программиста при изменении дизайна было минимальным , нужно так и делать. А под дизайном (оформлением) понимается все то, что ВИДИТ конечный посетитель сайта. Сделать это все без участия программиста и без активных шаблонов невозможно.
Я ничего не имею против PHP-шаблонов (когда не используется какой-то отдельный шаблонизатор), но только когда PHP там применяется только для построения оформления. Просто PHP может отпугнуть дизайнера. На помощь приходят такие шаблонизаторы как smarty, где многие конструкции схожи с HTML-конструкциями. Есть открывающие и закрывающие тэги, например. Для дизайнера такое воспринимается легче.
 
snaky
Ой, только такого постинга десятый раз так нехваало.
Я только отвечу на одну фразу:
На помощь приходят такие шаблонизаторы как smarty, где многие конструкции схожи с HTML-конструкциями.
НЕТ ТАКОГО ПОНЯТИЯ HTML-КОНСТРУКЦИЯ.
Данное понятие - абсурдно по своей сути.

В остальном отвечать уже просто не хочется. Идите - почитайте старые темы, и не пишите в эту тему, пока не ознакомитесь со всем архивом форума за последний месяц. В сотый раз одно и тоже писать никому не захочится.
 

snaky

Новичок
НЕТ ТАКОГО ПОНЯТИЯ HTML-КОНСТРУКЦИЯ.
Данное понятие - абсурдно по своей сути.
Хорошо. Если не понравился термин, вот другой: "HTML-тег".
Хотя, ты приекрасно понял, что я хотел сказать.
В остальном отвечать уже просто не хочется. Идите - почитайте старые темы, и не пишите в эту тему, пока не ознакомитесь со всем архивом форума за последний месяц. В сотый раз одно и тоже писать никому не захочится.
Вообще, я прочитал все. Может где-то и повторился. Извиняйте.
 

psylosss

Новичок
Я пользуюсь блочным шаблонизатором.
Если есть задача изменять количество колонок верстальщиком без участия программиста, то можно попробовать сделать так.
Шаблон как обычно:
<table>
<!-- BEGIN row -->
<tr>
<!-- BEGIN col -->
Текст
<!-- END col -->
</tr>
<!-- END row -->
</table>

И сделать еще один php-файл, в котором прописать
//Количество колонок вывода новостей
define ("COLS_IN_NEWS",3);
А уж скрипт смотрит COLS_IN_NEWS и выводит нужное число колонок (как раньше описывалось).

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

alexhemp

Новичок
psylosss

Это решение уже было в топике! На нем Фанат и остановился!
 

Фанат

oncle terrible
Команда форума
вообще-то фанат нина чём подобном не останавливался.
Но вы продолжайте, продолжайте
 

alexhemp

Новичок
Фанат

Ну с точностью до шаблонизатора идея-то одна и та-же.

http://phpclub.ru/talk/showthread.php?postid=466865#post466865
 
Сверху