tenshi Ну уж точне не стану прифигачивать XSLT вместо стандартного шаблонизатора. XML ничем, кроме пары тегов и более жёстких правил не отличается от HTML. RSS у меня обычным PHP шаблонон генерится Насчёт стыковки - проблема в том, что наверно 99% делают это бездумно. Мало кто работает с XML базами и документами. Поетому часто это выглядет так: SQL => Array => Array structure => XML => XSLT processor => Browser вместо SQL => Array => PHP template to HTML => Browser как это и должно быть. Много вы знаете CMS'ок, которые работают именно с массивами XML документов и XML базами? Помоему всё они так или иначе опираются на какую-то из реляционных СУБД, которая собственно и хранит данные. Так что не стоит путать вещи - одно дело генерация определённых XML документов типа RSS, Atom, каких-то експортеров данных. Другое работать с полным спектром XML технологий, когда вы делаете XQuery запросы в XML базу данных, получаете XML документ, у вас сделаны XML Schema, style sheets и соответственно XSLT трансформации. И собственно всё это может склеивать PHP для обработки запроса, только вот никаких конвертацией делать вообще не нужно: Сделал запрос на XQuery, получили XML документ, скормили его в XSLT трансформатор и отдали в браузер - ИМХО, это правильно. ИМХО, не правильно мудохать SQL базу для получения результата и потом конвертировать его в XML только для того, что XSLT использовать в кайф как шаблонизатор. Есть выражение - use the right tool for the job. ИМХО, именно тот случай.
в том-то и дело, что у тебя будет 3 шаблона, которые придётся поддерживать в синхронности. надо добавить какое-то дополнительное поле - извольте редактировать каждый шаблон, вставляя одинаковые куски кода. впрочем, да, это плохой пример. SQL => Array => Array structure => XML => XSLT processor => Browser SQL => Array => Array structure => PHP template to HTML => Browser причём "=> PHP template to HTML =>" при использовании всяких шаблонизаторов высокого уровня получается даже медленнее чем "> XML => XSLT processor =>". а знаешь почему? xslt - это как регулярка. быстро компилируется, быстро исполняется. а всякие смарти - это груда интерпретируемого кода.
tenshi А как будто и на XSLT не придётся делать 3 разных шаблона для того, что бы выдавать 3 разных формата данных? Когда я говорю PHP template, это значит голый PHP без каких либо шаблонизаторов дополнительных. По сути это include и вставки PHP кода.
Psih, в хслт будет 4 стайлшита, один с общими шаблонами и 3 для отличающихся частей. соответственно, если мы добавляем какой-то дополнительный элемент, то скорее всего шаблон для него будет один в общем стайлшите. include - довольно медленная штука. поэтому будут либо тормоза, либо слабый реюзинг и процветающая копипаста
tenshi А почему это он медленный? Он не чуть не медленнее, чем остальное. Это одна быстрая операция, особенно когда ещё стоит opcode cache, который кеширует всё в памяти.
даже с ним медленная. не так сильно конечно как обрабатывать? речь о пре и пост хуках? о да, добавлять куски хтмл или перепарсивать его регулярками из-за невозможности работать с дом - это очень элегантное решение
А DOM-документ - это бинарный исполняемый файл? =) Что-то мне подсказывает, что парсится он тоже регулярками.
tenshi По хорошему для чистоты эксперимента нужно взять сложную страницу, собираемую из 4-5 блоков, сделать оба варианта и погонять тесты. Причём под сложной я понимаю не пол килобайта шаблонов, а так нормально, килобайт 7-10, как в реальных страницах.
мда... поржал... Это тесты на нотисы варнинги фатал эроры и прочую хрень, которые ничего не показывают еще .... Пять. Садись...
ты видимо смотрел только quicky и smarty2? к сожалению безинклудовая реализация в них бажная. остальные тесты нормально работают а по подробней, о, великий гуру?
tenshi тут даже есть тема специальная http://www.php.ru/forum/viewtopic.php?t=19244 народ приводит код и циферки. вот, если не сложно, сделаете также? и удобней смотреть, и результаты можно пообсуждать.