Развертывание данных в ввиде таблицы

jian

Guest
ranshe ya rabotal v proekte gde bazy dannyh ne bylo.
dannie hranilis v xml filah.
programma eto byla - shareware BEZ bazy dannyh, t.e. ne kak "server-cliant", a kak "cliant-cliant".
obychno eto nazyvayut PeerToPerr(p2p).

rezultat - kompaniya kotoraya ispolzuyet eto - ei ne nado platit dengi za:
1)server
2)administririvanie servera
3)server space(v nekotoryh stranah - lishnii kvadratnyj metr stoit dorogo).

kogda mnogo klientov - server dohnet :( . a blgodarya p2p(xml?) - takih problem net :)
xslt - no business logic which is left to an application. it is all about the transfroming the data into presentable format((xml)html/pdf) so that when you decide to change the interface - no need to change the business logic code at all.

plus, if you have business logic and presentation logic all in the same "php" code and you will change only the presentation part - you will have to make extra test for the business logic - to prove that no business logic went wrong.

extra test for the business logic - - > extra money
 

neko

tеam neko
данная технология в вашей защите не нуждается если что
если кому-то не нравится -- ради бога, никто этим пользоваться не заставляет
 

XiMiK

Новичок
Но я не могу понять, нафига это надо, если приложение одно, самостоятельное и отдельно стоящее. И единственная задача которого - вывести базу на экран.
Вопервых програмист сам решает как ему строить свое, хоть самое маленькое приложени и не тебе их учить. Мало ли кто как захочет реализовать задачу. Когда ты спрашиваешь почему так делают, неужели ты сам ответа незнаешь? Я думаю знаешь. Потомучто либо ТУПЫЕ или хотят развиватся и эвалюционировать! Но это их проблемы и использование XSLT полностью на их совести.

Если тебе что-то не нравится, напиши статью о том как не надо делать програмы. (А, ну или тебе надо сначало "понять", почему их неправильно пишут...).

ПОЧЕМУ пхпшный foreach среди td - это ОТВРАТИТЕЛЬНО, а xslt-шный - красиво и прогрессивно.
Как раз потомучто пхпшный. Вот это самый важный момент.
::::Мой ответ на твой вопрос::::
Парсить xslt будет кто угодно, а пхп только php-интерпритатор. Кто знает какие могут понадобится веб-интерфейсы и к чему? Кто сказал, что всегда используемый код xslt будет использован токо твоим приложением? Незабывай, что веб - это не просто странички. Это и банковские системы и теже пиринговые сети...

Я хочу сказать, что в узких рамках примитивной задачи, в которые нас загоняет Фанат, xslt теряет всякие приемущества. На самом деле надо смотреть либо шире, либо тема бессмыслена.

Фанат, ты явно не хочешь, чтобы написанное когда-то приложение стало расширяемым. XSLT это даёт! Я с тобой согласен, что в большенстве случаев xslt лишний, но ты глянь шире и всё станет ясно.
 

inTox

вёбных дел мастер
Покажи, если нетрудно, пример.
что делает программер, а что - "верстак".
Изволь, но сразу хочу оговорить, что на подобных проектах PHP не используется. Если тебя это не смущает - то вот:
программер делает:
<data>
<param name="n1" value="v1"/>
<param name="n2" value="v2"/>
</data>


и больше его ничо не колышет.

дизайнер говорит, что:
<TABLE width="100%" bgcolor="red">
<TR><TD><B>[<!-- paramName -->]</B></TD><TD><I>[<!-- paramVal -->]</I></TD></TR>
</TABLE>


xslt-верстальщик внедряет
<template select="param">
<TR>
<TD><B><value-of select="@name"></B></TD>
<TD><I><value-of select="@value"></I></TD>
</TR>
</template>
 

Макс

Старожил PHPClub
Фанат
генерировать XML проще чем генерировать HTML. На это уходит меньше кода, делается все это автоматически.
В XSLT находится вся логика представления :
-подсветить текущий пункт меню,
- вывод полосатой таблицы,
- если нет записей, то вывести текст об этом
.... и т.д.
Если не использовать XSLT то все это надо было писать с помощью ПХП.
Таким образом с помощью XSLT пхп-программер переносит часть своей работы (а именно логику оформления) на плечи XSLT-кодера. ПХП-программер всем доволен, ему меньше писать кода.
Это в идеале. В реальности не редко ПХП-программеру самому приходится писать XSLT-стили.
 

fixxxer

К.О.
Партнер клуба
Шо, опять? (c) :)

ну что.. лично меня еще никто не убедил в том, что XSLT удобнее любого другого шаблонного движка - Смарти, Сигмы, или PHP-шаблонов вида ..html..<?=$xxx?>..html..
все оперируют словом "стандарт" и фразами типа "ты не понимаешь". ;)

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

Фанат

oncle terrible
Команда форума
inTox
Это то, что я хотел услышать.
Верстальщиком вы называете XSLT-программиста.
То есть, мы имеем не разделение труда программера и верстака, а программера и программера.
Собственно, против XSLT я ничего не имею. Но просто Не надо всем рассказывать, как он разделяет данные и представление.
Данные с представлением и в пхп разделены.

Макс
Давай не будем передергивать, а? И сравнивать несравнивые вещи?
Сгенерить МАССИВ из базы проще, чем XML.
А именно его надо сравнивать с html! К xml - этому примитивному формату хранения данных, html НЕ ИМЕЕТ НИКАКОГО ОТНОШЕНИЯ!
А по поводу кодирования
пхп-программер переносит часть своей работы (а именно логику оформления)
Так я и не понимаю - почему в случае с пхп это осуждалось, на СИСТЕМНОМ уровне - что это бяка, что надо разделять логику и представление, что верстак не должен думать над тем и над этим.
НУ ОБЯСНИТЕ ЖЕ МНЕ - ПОЧЕМУ ВСЕ ВСЕГДА ПИНАЛИ ПХП ЗА ТО, ЧТО ВЕРСТАЛЬЩИКУ ПРИХОДИЛОСЬ ЛЕЗТЬ В КОД, И ВСЕ ПРОСТО ОБЛИЗЫВАЮТ XSLT ЗА ЭТО ЖЕ САМОЕ?!

XiMiK
Как раз потомучто пхпшный. Вот это самый важный момент.
стоп.
но когда ты выдавал свое сакраментальное
Если твои данные (html-вёрстка <td> ) хранится в скрипте, то сам понимаешь во что это выльется
- ты НИЧЕГО про то, что это касается только пхп НЕ ГОВОРИЛ!
В общем, с тобой все ясно. Аргументы исключительно религиозного плана, на уровне "Учение Маркса всесильно, потому, что оно верно".
С тобой я дискуссию прекращаю.
 

Макс

Старожил PHPClub
Фанат
начнем с того, что ты приувеличиваешь.
Во-первых, не все и не всегда критикуют (критиковали) использование чистых ПХП-шаблонов.
Во-вторых, не все хвалят и используют XML/XSLT. Ресльно среди ПХП-программеров процент таковых сравнительно мал.

Далее, расмотрим 2 ситуации.
1. Ты (пхп-программер) сгенерировал массив
2. Ты (пхп-программер) сгенерировал XML-строку
Скажи, в первом случае тебе надо будет что-то писать в шаблоне ?
Ну например строки типа :
PHP:
<? foreach ($rows as $row) { ?>
.... /// здесь ХТМЛ-код
<? } ?>
?
Про ХТМЛ-код, который внутри, я не спрашиваю. Я спрашиваю про ПХП-код. Его будет писать ПХП-программер или верстальщик ?

В случае с XSLT пхп-программер сгенерировав XML, дальше ничего не делает. Все циклы и т.д. пишет XSLT-кодер

Еще пример.
Допустим начальство сказало уже имеющуюся таблицу (данные для которой берутся из твоего массива) сделать полосатой. Кто это будет делать ПХП-программер или ХТМЛ-кодер ?
 

Фанат

oncle terrible
Команда форума
Макс
Спасибо за интересный вопрос.
Про ХТМЛ-код, который внутри, я не спрашиваю. Я спрашиваю про ПХП-код. Его будет писать ПХП-программер или верстальщик ?
Верстальщик.
И вот здесь - да, мы имеем преимущество в унификации верстальщика. Ему неважно, на чем пишет программист. НО. Маленький такой нюанс. Верстальщику придется самому стать программистом. потому, что вместо ограниченного набора пхп тегов ему придется учить псевдоязык по полной.
А если он не хочет ыть программером - для него есть "чистые" шаблоны, типа xTPL.
Еще пример.
Допустим начальство сказало уже имеющуюся таблицу (данные для которой берутся из твоего массива) сделать полосатой. Кто это будет делать ПХП-программер или ХТМЛ-кодер ?
В случае, если используются "чистые" шаблоны, то допустим, верстак вставляет в код шаблона переменную {BG_STYLE} и правит CSS, а программер правит код скрипта.
В случае пхп-шаблонов - то же самое, в общем-то. <?=$bg_style?>
А значение программер добавляет в массив, содержащий данные для таблицы.

Вот именно этот вопрос я хотел задать inTox-у, но не сформулировал.
Собственно - что принципиально нового дает xtpl в этом случае?
 

inTox

вёбных дел мастер
Собственно - что принципиально нового дает xtpl в этом случае?
ничего. ты это хотел услышать?

Просто "возвращаясь к основам" хочу отметить, что XSL — это механизм преобразования XML->XML. Он не имеет никакого отношения к языкам программирования, программами на которых этот XML генерится. Он также не имеет отношения к идее "разделения кода и представления", поскольку о коде ничего не знает. У него просто есть документ XML, который он трансформирует в другой документ XML. Как умеет.
Исходя из вышесказанного могу сделать вывод , что текущий разговор - это разговор о достоинствах и недостатках инструмента, применяемого несколько не по назначению, если можно так выразиться.

Зачем обвинять молоток(XSLT) за неспособность разрубить полено("разделение кода и представления")?

Ps: сумбурно, видимо, изъяснился... мои пардоны.
 

andygray

Guest
Фанат
Ты любитель длительных бесплодных рассуждений? Я, за достаточно большое количество долгих лет ( :) ), видел массу подобных разговоров на самые различные темы, и кроме того, что часть людей показывала свою несостоятельность отстоять свою точку зрения, остальные всё же оставались при своей. Хотя некоторые изводили на это массу нервов

Кто то хотел пример использования, где это удобно и целесообразно. С доказательствами и т.п.

Ок. Если взять предложенную мной структуру хранения модулей программы ( http://phpclub.ru/talk/showthread.php?s=&threadid=57042 ) то примеры можно привести такие:

XML файл свойств модуля - используется:
а) для инсталляции модуля в систему - он содержит тип модуля, список необходимых компонент, структуру хранения данных для создания новой (ых) таблиц в ВБ и т.п.
б) php лоадером для построения view, т.е. преобразования данных базы по XML'ному шаблону, используя преобразователь на XSLT в html
в) для редактирования информационных элементов модуля. В моём случае - редактирование структуры (1-раз), редактирование элементов (2-два). Система генерит формы редактирования на основе типа данных и их формата. Например - для редактирования элемента генериться форма, а для редактирования структуры - дерево. В свою очередь, в системе уже должны быть установлены модули для работы с подобными типами информационных элементов.
г) ещё оооочень много применений. см. ниже.

XSLT файл используется лишь для представления данных, структура которых описана в XML файле, а сами они храняться в базе, в html. При чём, в одном модуле могут быть несколько XSLT шаблонов, для вывода данных в разных стилях (для разных скинов, лейаутов и т.п.)

Php файл содержит логику работы элемента и связи с другими модулями. По сути представляет класс moduleName.

Связи с другими модулями, описаные в XML файле свойств, и реализованые в Php логике, образуют объектную структуру приложения.

Допустим, на том же примере ( http://phpclub.ru/talk/showthread.php?s=&threadid=57042 ) я стою приложение для создания и работы с каталогами (директориями) под названием DirectoryScript. Каталоги могут содержать элементы произвольных типов (ссылки, статьи, документы, галерею изображений с автомат. генерацией табнейлов, и т.п.). Вот структура модулей:
PHP:
(1)DirectoryScript
-- (1.1.)SubDirs
-- (1.2.)Elements
    --- (1.2.1.)ElementType1
    --- (1.2.2.)ElementType2
    --- (1.2.n.)ElementTypeN
Каждый из этих модулей содержит XMLинфо, XSLTпредставление(я) и PHPлогику.

Сам скрипт DirectoryScript не может делать ничего, но он от начала до конца описывает работу Каталога, хранящего различные элементы.

Теперь я хочу создать приложение DirectoryManager, позволяющее создавать различные каталоги, управлять ими, а так же подключать любые типы элементов, шаблоны вывода директорий и т.п. Приложение DirectoryManager содержит ИСЛЮЧИТЕЛЬНО БИЗНЕС ЛОГИКУ. Выше я называл подобные прложения "системой" и частично его описал. Поэтому допустим, что мы подключили DirectoryScript к DirectoryManager'u и создали каталог DVD дисков. Для этого разработчик сделал следующие вещи:
1) создал новую каталог.
2) подключил новый XSLT шаблон отображения каталога дисков
3) подключил XSLT шаблон отображения элемента типа DVD диск
4) нажал кнопку GENERATE и тут произошло нечто интересное - в отдельной папочке создался готовый скрипт каталога DVD дисков с админкой, а так же его инсталляшка. Весело? ;) Именно для этого пункта, а так же для пункта (г) об использовании xml это всё и делалось. Остальное - волны, поднятые вашими рассуждениями на тему - что лишнее, и зачем разделять труд программиста и программиста :))

Да мне гораздо выгоднее посадить талантливого программиста писать бизнес логику, забыв обо всём. Позволить ему работать на максимально абстрактном уровне, программистам же по слабее дать возможность создавать модули. Дизайнеры же, вместе с верстальщиками будут делать шаблоны, в зависимости от нужд (кастомы для клиетов и что угодно). XSLT кодить по html-шаблонам нарезанного дизайна будут скорее всего программеры, которые делают модули.

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

BeGe

Вождь Апачей, блин (c)
Фанат ты правда раздолбай :).

Автор оригинала: Макс
Во-вторых, не все хвалят и используют XML/XSLT. Ресльно среди ПХП-программеров процент таковых сравнительно мал.
В-третих
что бы посмотреть как реботает технолгия XML в шаблонах надо.
1. Выучить XML (теоретически, потому что не сможешь его применить без XSLT)
2. Выучить XSLT (теоретически, потому что не сможешь его применить без XPath)
3. Выучить XPath (вот тут уже можно посмотреть результат на деле).

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

А теперь насчёт XSLT кодера.
А кто пишет шаблоны для Smarty программер или дизайнер ?

Да вот только проблема внедрения XSLT это требование к HTML кодеру писать в XHTML формате.

Так что многие из программеров будут "раздолбаями".
 

Фанат

oncle terrible
Команда форума
andygray
Ты любитель длительных бесплодных рассуждений
Нет! Чур меня! Чур!
Даже читать не стал эти длинные и бесплодные и не в тему. Избавь меня, бога ради, от проповедей про свою гениальную систему. У тебя свой топик есть - вот и валяй в нем.

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

BeGe

Вождь Апачей, блин (c)
inTox
XSLT это спобос преобразования XML ->XML, XML->HTML, XML->TEXT
это достаточно понять глянув на <xsl:eek:utput>.

Так что нефиг микроскопом гвозди забивать.
 

inTox

вёбных дел мастер
Да вот только проблема внедрения XSLT это требование к HTML кодеру писать в XHTML формате.
рекомендую выполнить для начала предложенные тобой пункты , прежде чем писать подобное.

<!--типичный случай, клиника-->
 

andygray

Guest
Фанат проповеди и излияния были исключительно для fixxxer'а. Тебе же - пара строк в начале и столько же в конце, которые ты и прочёл.

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

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

Фанат

oncle terrible
Команда форума
andygray
Для фиксера ты должен был написать две колонки - "худо - хорошо", как робинзон крузо, а не не петь про свою систему, как его попугай.
 

andygray

Guest
Фанат
Не ёрничай. Он не это просил, да и не пою я, а просто привёл пример. Больше не на чем - я об XSLT меньше любого знаю. Почему и тусуюсь в твоём, а не своём топике - пара умных мыслей, которые я здесь нашёл, уже мне здорово помогла. Мне действительно интересно - ЗАЧЕМ использовать XSLT&XML вместо php&smarty (и, специально для Фаната - вместо html в php, т.е. с кастомными шаблонами либо вобще без них:) ). Как когда то давно было интересно - зачем использовать базу данных, когда данные у меня прекрасно лежат в файлах, и написана своя библиотека для работы с ними :D (рассуждения в те года о базах уж очень напоминает это)

всё, молчу :)
буду пассивным... наблюдателем

PS
Говорить, что html в XSLT лучше, чем html в PHP - глупо. Даже не буду объяснять почему. Сначала нужно ставить вопрос ЗАЧЕМ, а уже потом смотреть - что лучше ДЛЯ. Ребенку даже извесно. Фанат над вами стебётся просто :)
 

Фанат

oncle terrible
Команда форума
А я не задаю вопрос - ЗАЧЕМ.
Я задаю вопрос ПОЧЕМУ пхп среди хтмл - это ужжжасно, а xslt - прекрасно?
Почему мне рассказывают, как xslt замечательно разделяет код и представление. Хотя представление - как выясняется - это и есть код.
А про зачем я и сам могу задать вопрос - зачем нужно использовать smarty.

Кстати. Ты так до сих пор ничего и не понял, если ставишь знак равенства между
XSLT&XML вместо php&smarty
 

BeGe

Вождь Апачей, блин (c)
inTox

Ситуация HTML кодер написал шапку страницы да и просто было впадло ему ставить кавычки при атрибутах в теге <table>

А ты потом радуйся почему ты должен искать эти мелочи что бы твой XSLT начал работать.
 
Сверху